0

models.py に次のクラスがあります

class Story(models.Model):
    title = models.CharField(max_length=60)
    creator = models.ManyToManyField(User, blank=True)

2 つのクリエーター名を使用して QuerySet を返そうとしています。

たとえば、作成者が User 1 obj と User 2 obj であるストーリーをフィルターするにはどうすればよいでしょうか?

多対多関係のドキュメントを読みましたが、何も見つかりませんでした。私が到達した最も近い解決策は...

Story.objects.filter(creator__in=[1,2]).distinct() 

ただし、1 と 2 の両方に対して共同クエリを実行するのではなく、1 か 2 のみを実行します。

どんな助けでも大歓迎です!

4

2 に答える 2

1

Qオブジェクトが必要になります。私はこのようなことを試してみます:

from django.db.models import Q

Story.objects.filter(Q(creator=1) | Q(creator=2))
于 2012-10-17T01:49:42.387 に答える
0

これには Q オブジェクトを使用できます。

https://docs.djangoproject.com/en/1.4/topics/db/queries/#complex-lookups-with-q-objects

次のようなものは、あなたが望むことをするはずです:

Story.objects.filter(Q(creator=1), Q(creator=2))

于 2012-10-17T00:30:24.330 に答える