Python 基本Django搜索实现
从表单中检索用户提交的数据时遇到一些困难。我能够硬编码一个“术语”并成功地搜索数据库,但是使用我现在的代码,当结果被动态填充时,我会收到一个多值DictKeyError。因此,我想知道应该使用什么方法来处理这行代码:“term=request.GET['term']” views.py url.py search.htmlPython 基本Django搜索实现,python,html,django,Python,Html,Django,从表单中检索用户提交的数据时遇到一些困难。我能够硬编码一个“术语”并成功地搜索数据库,但是使用我现在的代码,当结果被动态填充时,我会收到一个多值DictKeyError。因此,我想知道应该使用什么方法来处理这行代码:“term=request.GET['term']” views.py url.py search.html 搜寻 {%if结果%} 发现以下项目: 名字 姓 单位 电子邮件 {结果中的结果为%} {{result.id} {{result.lastName} {{result.
搜寻
{%if结果%}
发现以下项目:
名字
姓
单位
电子邮件
{结果中的结果为%}
{{result.id}
{{result.lastName}
{{result.company.name}
{{result.communicationItems.0.value}
{%endfor%}
{%endif%}
在处理了提交空查询的默认情况后,我能够修复我的问题。下面是正确的代码
def search_bar(request):
term = request.GET.get('term')
if term:
results = objCW.search(term)
context = {'results': results}
return render(request, 'uccx/search.html', context)
else:
context = {'': ''}
return render(request, 'uccx/search.html', context)
在这种情况下,querydict(
request.GET
)中没有term
键。GET查询字符串参数通常是可选的,因此您的程序应该处理缺少它们的情况。尝试类似于request.GET.GET('term','')
WillemVanOnsem是的,但在本例中,我正在搜索一个已知存在的密钥@Ralf这会抛出一个500服务器错误
urlpatterns = [
path('', views.table_content, name='table_content'),
path('search_form', views.search_bar, name='search_bar')]
def search_bar(request):
term = request.GET.get('term')
if term:
results = objCW.search(term)
context = {'results': results}
return render(request, 'uccx/search.html', context)
else:
context = {'': ''}
return render(request, 'uccx/search.html', context)