1

このモデルがあるとします:

Class Item(models.Model):
    ...

Class ItemCollection(models.Model):
    ...
    items = models.ManyToManyField(Item)
    ...

今、私はItemCollectionをフィルタリングします:

collection = RuleRequest.objects.filter(*some_filter*)

「コレクション」クエリセットから、ManyToManyField からすべての一意のアイテムを取得する必要があります。これは単一のオブジェクトに対しては簡単に実行できますが、クエリセットではどのように実行するのでしょうか?

4

1 に答える 1

0

これがあなたが求めているものかどうかはわかりません...しかし、単に ItemCollection によってフィルタリングされた一意のアイテムを取得したい場合は、以下が機能するはずです:

Item.objects.filter(itemcollection__*somefilter*).distinct()

たとえば、ItemCollection にアクティブなフィールドがある場合

Item.objects.filter(itemcollection__active=True).distinct()
于 2011-07-14T10:44:59.967 に答える