DJANGO/Python 我正在尝试加载http://127.0.0.1:8000/catalog/。如果用户在此页上的中输入数据,则表单将向数据库发送搜索查询。我的问题是http://127.0.0.1:8000/catalog/没有加载–它导致了一个异常值为“search\u query”的“MultiValueDictKeyError”异常类型。但是,当用户将数据提交到表单中时,(即http://127.0.0.1:8000/catalog/?search_query=biography+of),页面将被加载。我试图让http://127.0.0.1:8000/catalog/加载而用户不必提交搜索查询
以下是我的视图函数:
def index(request):
. . .
num_of_word = []
bookInstance_titles = []
bookInstance_ids = []
num_of_word = BookInstance.objects.filter(status='a', book__title__contains=request.GET['search_query']).count()
bookInstances = BookInstance.objects.filter(status='a', book__title__contains=request.GET['search_query'])
for i in bookInstances:
bookInstance_titles.append(str(i.book))
bookInstance_ids.append(str(i.id))
context = {
. . .
'num_of_word': num_of_word,
'bookInstance_titles': bookInstance_titles,
'bookInstance_ids': bookInstance_ids,
}
我认为问题在于变量(num\ of\ word和bookInstances)试图访问请求的搜索查询,而/catalog/request没有搜索查询。经过研究,我仍然不知道如何解决这个问题
谢谢你
希望能成功。根据您的代码使用下面的代码
您尝试在GET查询不存在时访问它。您必须检查request.GET中是否存在search\u查询,或者只对其使用.GET函数。见下表:
相关问题 更多 >
编程相关推荐