Django 模型查询中的 OR 运算符
Posted
技术标签:
【中文标题】Django 模型查询中的 OR 运算符【英文标题】:OR operator in Django model queries 【发布时间】:2011-07-23 15:26:35 【问题描述】:我正在尝试在 Django filter()
函数中使用 OR
运算符。现在我有
contactlist = Contact.objects.filter(last_name__icontains=request.POST['query'])
但我也想按名字搜索。例如:
contactlist = Contact.objects.filter(last_name__icontains=request.POST['query'] OR first_name__icontains=request.POST['query'])
有人知道怎么做吗?
【问题讨论】:
Django Filters - or? 的可能重复项 【参考方案1】:Q objects
from django.db.models import Q
Contact.objects.filter(Q(last_name__icontains=request.POST['query']) |
Q(first_name__icontains=request.POST['query']))
【讨论】:
【参考方案2】:result = Contact.objects.filter(last_name__icontains=request.POST['query']) | Contact.objects.filter(first_name__icontains=request.POST['query'])
【讨论】:
请在此处说明您要修复的内容。在 *** 上禁止仅发布没有摘要的代码引用。 虽然我觉得这种语法会强制它计算两次,所以它会执行两个数据库查询而不是一个(如接受的答案所述) 为了将来参考,此语法不会执行两个数据库查询。 这会作为单个 SQL 请求执行吗?以上是关于Django 模型查询中的 OR 运算符的主要内容,如果未能解决你的问题,请参考以下文章