【问题标题】:Django filter OR .filter(x=1,y=2) like Django DocuDjango 过滤器 OR .filter(x=1,y=2) 像 Django Docu
【发布时间】:2016-09-13 13:58:26
【问题描述】:

所以这行得通:

from django.db.models import Q

Item.objects.filter(Q(creator=owner) | Q(moderated=False))

根据:https://docs.djangoproject.com/en/dev/topics/db/queries/#spanning-multi-valued-relationships

这应该给我和第一个代码一样的 sn-p

Item.objects.filter(creator=owner, moderated=False)

但它的行为类似于:

 Item.objects.filter(creator=owner).filter(moderated=False)

编辑: 我误解了除非多对多字段到位,否则第二个和第三个 sn-p 是相同的。但两者都与第一个sn-p无关

【问题讨论】:

标签: django django-filter django-filters


【解决方案1】:

Q 带运算符 |可以翻译成:

请给我creator=owner OR moderated=False

的所有实例Item对象

(OR 在这里很重要)

.filter(creator=owner, moderated=False) 说:

请给我creator=owner AND moderated=False

的所有 instace Item 对象

【讨论】:

  • 谢谢,我明白了!
猜你喜欢
  • 1970-01-01
  • 2014-02-14
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
  • 2014-05-31
  • 2018-02-17
  • 2021-04-02
  • 2017-09-28
相关资源
最近更新 更多