django如何对多个字段进行模糊查询

目前可以对单个字段,即年份进行模糊查询,请问想要再加入其它字段该怎么做呢,如有帮助必采纳!

def sr2(request):
    data_dict = {}
    value = request.GET.get('q')
    if value:
        data_dict = {"year__contains":value}
    queryset = models.brown_plant_hopper.objects.filter(**data_dict)
    page_object = Pagination(request, queryset)
    context = {"queryset": page_object.page_queryset,  # 分完页的数据
               "page_string": page_object.html(),  # 页码
               }
    return render(request,'sr_list2.html',context)

Q函数 “|”表示或 “&”表示且
Q(year__contains="value") & Q(month__contains="value")

多个字段模糊查询的话,就是改下data_dict就行了,比如:

data_dict = {"year__contains":value,"month__contains":value1}

可以利用多个filter实现,例如:

queryset = models.brown_plant_hopper.objects.filter(year__contains=value).filter(month__contains=value)

封装时将sql语句摘出来 ,调用数据查询时放入自己查询条件