Python 如何过滤各种字段

Python 如何过滤各种字段,python,django,django-views,Python,Django,Django Views,我在视图中有一段代码,我打算过滤数据库模型中名为OrderItem的所有字段 代码如下: def search_form(request): if 'q' in request.GET and request.GET['q']: x = request.GET['q'] q = x.title() print q x = request.GET['certification_type'] print x

我在视图中有一段代码,我打算过滤数据库模型中名为OrderItem的所有字段

代码如下:

def search_form(request):

    if 'q' in request.GET and request.GET['q']:
        x = request.GET['q']
        q = x.title()

        print q

        x = request.GET['certification_type']
        print x

        items = OrderItem.objects.filter(Q(order_type__iexact=x and order_type__iexact=q) | Q(certification_type__iexact=x and certification_type__iexact=q) | Q(item__iexact=x and item__iexact=q)
         | Q(certification_no__iexact=x and certification_no__iexact=q) | Q(client__user__email__iexact=x and client__user__email__iexact=q) | Q(client__phone_number__iexact=x and client__phone_number__iexact=q)
         | Q(created_on__icontains=x and created_on__icontains=q))


        for x in items:
            for q in items:
                print items 



        return render(request, 'i/search_results.html', {'items':items, 'query':q})
    else:
        return render(request, 'i/search_form.html', {'error':True})

但是,如果我尝试查找certification_类型下的项目,我会在控制台上得到空列表[]。我不知道缺少了什么

您粘贴的代码甚至无效-
…或Q(client=Q))对象。filter()…
您能详细说明什么是认证类型意味着字段类型用户填写form@Sayse我在items=orderime.objects.filter(Q(item=Q)或Q处得到“无效语法”(certification_type=q)或q(order_type=q)或q(certification_no=q)或q(client=q))对象。filter()。值('order_type','certification_no','client','item','signer','certification_type','created_on')是您试图解决的问题吗?这不是您的问题所在。