1
我(簡化)模型是這樣的:django高效的方式來結合2個查詢或複合?
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關係支持我找不到:
Story.objects.filter(writers__contains=request.user) #but this is a TypeError
也許只是更有效地使2個查詢集,然後在列表中加入他們的行列,但很想有它的一個。
任何線索?謝謝!
太棒了!它的工作,可能是一個太基本的問題,但我沒有設法找到這個信息幾個小時!對於更多讀者來說,這可能包括重複的結果,它們可能被排除在外: 'Story.objects.filter(qwriters |(qwiki&〜qwriters))'其中qwriters和qwiki是相應的Q對象。謝謝! – viridis