使用Django模型分组
我有一个模型使用Django模型分组,django,python-2.7,Django,Python 2.7,我有一个模型 class Compared(models.Model): store = models.ForeignKey(Store) product = models.ForeignKey(Product) class Meta(): unique_together = ('store', 'product') 并且其中包含以下类型的数据 (store, product) (1, 1) (2, 1) (3, 1) (2, 2) (2, 3) (3
class Compared(models.Model):
store = models.ForeignKey(Store)
product = models.ForeignKey(Product)
class Meta():
unique_together = ('store', 'product')
并且其中包含以下类型的数据
(store, product)
(1, 1)
(2, 1)
(3, 1)
(2, 2)
(2, 3)
(3, 3)
(3, 2)
我想按产品分组,并获得该组中的所有门店
(product, (stores))
(1, (1, 2, 3))
(2, (2, 3))
(3, (2, 3))
是否有一个内置的查询功能来实现这一点,或者我必须手动使他们这样做 您可以使用
itertools
进行分组:
from itertools import group_by
cs = Compared.objects.all().order_by( 'product__pk' ) )
for p, l in groupby( l , key = lambda x: x.store.pk ):
print p.pk #the produt name
print [ s.pk for s in l ] #stores pks
print ( p.pk, tuple( s.pk for s in l ) )
注意:未测试语法
注意:此分组“在内存中”,但在数据库中
注意:订购方式很重要。可能会对您有所帮助。希望您先尝试搜索Umair。这是否回答了你的问题:?