[英]How can i make long query in django
I have this query filter. 我有这个查询过滤器。 But I don't know how to make it work
但是我不知道如何使它起作用
st = Student.objects.filter(
if request.GET['student_number']:
Q(student_number__icontains=request.GET['student_number'])&
if request.GET['student_region']:
Q(student_region__icontains=request.GET['student_region']) &
if request.GET['student_status']:
Q(student_status__icontains=request.GET['student_status']) &
if request.GET['student_process']:
Q(student_process__name__icontains=request.GET['student_process']) &
Is there any better way of doing that? 有什么更好的办法吗?
You can build the query dynamically like so: 您可以像下面这样动态构建查询:
query_list = []
for field_name in ['student_process', 'student_status', 'student_number', 'student_region', ]:
value = request.GET.get(field_name, None)
if value:
query_list.append(Q(**{field_name+'s_icontains': value}))
queryset = Student.objects.filter(reduce(operator.and_, query_list))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.