Django模型查询中的OR运算符

Ada*_*dam 38 django django-models django-queryset

我正在尝试OR在Django filter()函数中使用运算符.现在我有

contactlist = Contact.objects.filter(last_name__icontains=request.POST['query'])
Run Code Online (Sandbox Code Playgroud)

但我也想用名字搜索.例如:

contactlist = Contact.objects.filter(last_name__icontains=request.POST['query'] OR first_name__icontains=request.POST['query'])
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?

Yuj*_*ita 97

Q对象

from django.db.models import Q

Contact.objects.filter(Q(last_name__icontains=request.POST['query']) | 
                               Q(first_name__icontains=request.POST['query']))
Run Code Online (Sandbox Code Playgroud)


小智 11

result = Contact.objects.filter(last_name__icontains=request.POST['query']) | Contact.objects.filter(first_name__icontains=request.POST['query'])
Run Code Online (Sandbox Code Playgroud)

  • 请说明你在这里修理的内容.在stackoverflow上禁止仅发布没有摘要的代码引号. (4认同)
  • 为了将来参考,此语法不会执行两个数据库查询. (2认同)