救命啊!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})