【发布时间】:2013-05-11 00:58:23
【问题描述】:
我的(简化的)模型是这样的:
class Story(models.Model):
wikiedit = models.BooleanField(default=False)
writers = models.ManyToManyField(User,null=True,blank=True)
class Writer(models.Model):
user = models.OneToOneField(User)
现在我正在尝试构建一个查询集,其中包含所有满足的故事:wikiedit = True or user in writers
所以在我看来,我做了两个查询:
wikistories = Story.objects.filter(wikiedit=True)
writerstories = request.user.objects.story_set.filter
但如果可能的话,我想只用一个数据库命中来完成它。我想这会更有效率。从某种意义上说,我无法找到这种 m2m 关系中是否支持 in 运算符:
Story.objects.filter(writers__contains=request.user) #but this is a TypeError
也许创建 2 个查询集然后将它们加入到一个列表中会更有效,但我希望将其合并到一个列表中。
有什么线索吗?谢谢!
【问题讨论】:
标签: django django-queryset django-orm