我在中間表的額外領域的常用M2M:過濾
class Customer(models.Model):
items = models.ManyToManyField(Item, verbose_name=u'Items', through='CustomerItem')
class Item(models.Model):
pass
class CustomerItem(models.Model):
item = models.ForeignKey(Item, related_name='customer_items')
customer = models.ForeignKey(Customer, related_name='customer_items')
item_count = models.PositiveIntegerField(default=0)
我想與所有項目的查詢集爲給定的客戶那裏item_count > 0
。到目前爲止我發現的唯一方法(從here)是篩選中間表,然後用Python代碼創建一個對象列表,但我需要一個查詢集(對於表格ChoiceField
)。
'items = Item.objects.filter(customer_items__customer = customer,customer_items__item_count__gt = 0)'是否有效? – 2013-03-24 15:14:09
@Bibhas似乎工作,請寫回答 – wRAR 2013-03-24 16:07:05
添加爲答案。 – 2013-03-24 16:53:20