0

我的models.py中有以下课程

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

我正在尝试使用 2 个创建者姓名返回一个 QuerySet。

例如,我将如何过滤具有创建者的故事:用户 1 obj 和用户 2 obj?

我已经阅读了多对多关系文档,但找不到任何东西。我已经达到的最接近的解决方案是......

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

但它不会对 1 AND 2 进行联合查询,仅对 1 OR 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 回答