救命啊!python中的关键错误
我不断地发现这个错误:救命啊!python中的关键错误,python,django,dictionary,Python,Django,Dictionary,我不断地发现这个错误: MultiValueDictKeyError at /search/ "Key 'name' not found in <'QueryDict: {}>" /search处的多值错误/ “在中找不到键'name',看起来您唯一可能收到此错误的地方是在这一行: name = request.GET['name'] 在尝试像上面那样访问它之前,您没有检查request.GET字典中是否有“name”,因此,如果request.GET中不存在该键,您将收到一个
MultiValueDictKeyError at /search/
"Key 'name' not found in <'QueryDict: {}>"
/search处的多值错误/
“在中找不到键'name',看起来您唯一可能收到此错误的地方是在这一行:
name = request.GET['name']
在尝试像上面那样访问它之前,您没有检查request.GET字典中是否有“name”,因此,如果request.GET中不存在该键,您将收到一个键错误
因此,您似乎需要更改以下部分,以检查请求中是否存在“name”和“city”键。在尝试访问这些值之前,请获取字典:
name = request.GET['name']
city = request.GET['city']
if len(name) < 1 and len(city) < 1:
NoEntry = True
return render_to_response('search_form.html', {'NoEntry': NoEntry})
name=request.GET['name']
city=request.GET['city']
如果len(姓名)<1且len(城市)<1:
NoEntry=True
返回render_to_response('search_form.html',{'NoEntry':NoEntry})
我不认为这是你的完整代码。业务是什么。objects
?你用哪个教程来学习Python?看到len(x)<1
可能会很痛苦?len(x)==0
更快更明显,而且不是len(x)
更快,在我看来也同样明显。类似地,len(x)>0
比len(x)
更快更好。使用set
s、list
s、tuple
s、str
s等等,你甚至可以删除len()
位,然后只做x
或不做x
。所以像如果len(p)>0和len(q)<1:
这样的事情可以像如果p而不是q:
那样做,我至少会发现它更容易阅读。NoEntry=not(姓名或城市)
表示如果name
或city
不为空,则NoEntry
将为False
,否则将为True
。这是一种更短(我不是说更干净)的方法。
name = request.GET['name']
city = request.GET['city']
if len(name) < 1 and len(city) < 1:
NoEntry = True
return render_to_response('search_form.html', {'NoEntry': NoEntry})