Python 基本Django搜索实现

Python 基本Django搜索实现,python,html,django,Python,Html,Django,从表单中检索用户提交的数据时遇到一些困难。我能够硬编码一个“术语”并成功地搜索数据库,但是使用我现在的代码,当结果被动态填充时,我会收到一个多值DictKeyError。因此,我想知道应该使用什么方法来处理这行代码:“term=request.GET['term']” views.py url.py search.html 搜寻 {%if结果%} 发现以下项目: 名字 姓 单位 电子邮件 {结果中的结果为%} {{result.id} {{result.lastName} {{result.

从表单中检索用户提交的数据时遇到一些困难。我能够硬编码一个“术语”并成功地搜索数据库,但是使用我现在的代码,当结果被动态填充时,我会收到一个多值DictKeyError。因此,我想知道应该使用什么方法来处理这行代码:“term=request.GET['term']”

views.py url.py search.html

搜寻
{%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)