我的(简化的)模型是这样的:
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 个查询集然后将它们加入一个列表可能会更有效,但我希望将它放在一个列表中。
有什么线索吗?谢谢!