【发布时间】:2019-09-30 19:39:37
【问题描述】:
一直在尝试使用 Q 对象进行过滤,并且能够搜索“名字”+“姓氏”,但只能搜索其中一个。谁能告诉我我做错了什么?
评估搜索视图
澄清:
ma = 员工编号
fornavn = 名字
efternavn = 姓氏
fagnavn = 主题名称
aktivitetnavn = 活动名称
vuderingsnavn = 等级
delingnavn = 部门(整数)
class SearchEvalueringer(ListView):
model = Evaluering
template_name = 'evalsys/categories/søg_evalueringer.html'
def get_queryset(self):
query = self.request.GET.get('q')
if len(query) > 1:
eval_list = Evaluering.objects.filter(
Q(ma__ma__regex=query) |
Q(ma__fornavn__iregex=query) |
Q(ma__efternavn__iregex=query) |
Q(fagnavn__fagnavn__iregex=query) |
Q(aktivitetnavn__aktivitetnavn__iregex=query) |
Q(vuderingsnavn__vuderingsnavn__iregex=query) |
Q(ma__holdnavn__holdnavn__iregex=query)
)
else:
eval_list = Evaluering.objects.filter(
Q(ma__delingnavn__delingnavn__exact=query)
)
return eval_list
我试过这样做:
Q(ma__fornavn__iregex=query) & Q(ma__efternavn__iregex=query)
但这并不能让我搜索“John Smith”,仍然只能搜索“John”或“Smith”。
【问题讨论】:
标签: django django-views django-filter