Python Django网站如果搜索

Python Django网站如果搜索,python,django,Python,Django,如果有,我会与Python混淆 我为搜索过滤器输入了四个文本。 在调试中,我尝试了“x不是无”或“x!=无” 但它不能工作。 [请求有参数时工作良好的结果] [请求没有任何参数时工作不正常] 我在您的代码中没有看到任何None。如果找不到相关的第一个键,则request.GET.GET()有一个可选参数提供了一个可选值。默认情况下,这是None。由于您正在与''进行比较,因此可以使用

如果有,我会与Python混淆 我为搜索过滤器输入了四个文本。 在调试中,我尝试了“x不是无”或“x!=无” 但它不能工作。 [请求有参数时工作良好的结果] [请求没有任何参数时工作不正常]


我在您的代码中没有看到任何
None
。如果找不到相关的第一个键,则
request.GET.GET()
有一个可选参数提供了一个可选值。默认情况下,这是
None
。由于您正在与
''
进行比较,因此可以使用<如果找不到
“q2
”,请将
good
设置为空字符串。由于从
request.GET.GET()
获取的所有变量都是字符串,因此单独比较变量更具python风格,因为空字符串(或
!)是一个错误的值:
如果不好或不是买家:
等等。非常感谢!对正如你提醒的那样,它成功了!
def search(request):
good = request.GET.get("q2")
buyer = request.GET.get("q3")
StartTime = request.GET.get("SD")
EndTime = request.GET.get("ED")
context = {}
if good is not '' or buyer is not '':
    if good != '' and buyer != '':
        context = Dlyndx.objects.filter(
            Q(date__gt=StartTime),Q(date__lte=EndTime),
            Q(dlysale__btype__exact=buyer)&Q(dlysale__ptype__exact=good) |
            Q(dlybuy__btype__exact=buyer)&Q(dlybuy__ptype__exact=good))
        return render_to_response('search.html',{'context':context})
    elif good != '' and buyer == '':
        context = Dlyndx.objects.filter(
            Q(date__gt=StartTime),Q(date__lte=EndTime),
            Q(dlysale__ptype__exact=good) |
            Q(dlybuy__ptype__exact=good))
        return render_to_response('search.html',{'context':context})
    else:
        context = Dlyndx.objects.filter(
            Q(date__gt=StartTime),Q(date__lte=EndTime),
            Q(dlysale__btype__exact=buyer) |
            Q(dlybuy__btype__exact=buyer)).distinct()
        return render_to_response('search.html',{'context':context})
else:
    return render(request,"search.html")