中間テーブルに追加のフィールドがある通常の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
。私がこれまでに(ここから)見つけた唯一の方法は、中間テーブルをフィルタリングしてから、Pythonコードでオブジェクトのリストを作成することですが、(フォーム用のChoiceField
)クエリセットが必要です。