python - Django过滤多个值

标签 python django

任何人都知道为什么会这样 query_set不为我返回任何值?单独使用过滤器,效果很好,所以看起来.filter().filter()一起是过滤“非此即彼”的错误方法。

ticket_query = request.event.tickets.filter(status='on-sale').filter(status='paused').prefetch_related('ticket_tax')

最佳答案

带有多个参数的 filter() 用 AND 语句连接它们:
https://docs.djangoproject.com/en/2.0/ref/models/querysets/#filter

要在 Django 中执行 OR 查询,您可以使用 Q 对象:

from django.db.models import Q

ticket_query = request.event.tickets.filter(Q(status='on-sale') | Q(status='paused')).prefetch_related('ticket_tax')

更多细节在这里:
https://docs.djangoproject.com/en/2.0/topics/db/queries/#complex-lookups-with-q

关于python - Django过滤多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51121661/

相关文章:

python - 为什么 pandas Styler 'to_excel' 方法不保存百分比格式?

python - Python无效语法为何?c

python - Python 中的 assertEquals 到底是什么?

python - 使用来自另一个Docker容器的python包

django - 在SearchResult django haystack的数据库中找不到对象

python - 如何将字符串转换为字典或列表?

python - 什么是 'tk::placeWindow' 以及它如何使窗口在我的屏幕上居中?

python - 在模板中使用 Django 查询集会影响数据库吗?

python - 如何在GenericRelation中按外键过滤?

python - Django 设置。数据库错误