我正在尝试在django中实现搜索栏,如果搜索项出现在数据库中,我会在网页中显示。但是它的显示查询返回无值。我是django的新手。请帮助我
views.py
def search(request):
if request.method == 'GET':
form = LocForm(request.POST)
if form.is_valid():
search_query = request.GET.get('search_box', None)
print(search_query)
FirstLoc_list_obj = FirstLoc_List.objects.filter(address__icontains=search_query)
SecondLoc_list_obj= SecondLoc_list.objects.filter(address__icontains=search_query)
if (len(FirstLoc_list_obj) or len(SecondLoc_list_obj)) > 0:
print("Locaton Found")
return render(request, 'location_test.html', {'FirstLoc_list_obj': FirstLoc_list_obj, 'SecondLoc_list_obj': SecondLoc_list_obj})
else:
print("Location Not Found")
return render(request, 'location_test.html', {})
return render(request, 'location_test.html', {})
return render(request, 'location_test.html', {})
urls.py
urlpatterns = [
path('search/', views.search, name="search"),
]
location_test.html
<form type="get" action="#" style="margin: 0">
{% csrf_token %}
<label>Locations:-</label>
<input id="search_box" type="text" name="search_box" placeholder="Search..." >
<button id="search_submit" type="submit" >Submit</button>
</form>
5条答案
按热度按时间vwhgwdsa1#
正如我在评论中所说,您不能使用
icontains
和None
值。fumotvh32#
如果为None,则可以使用空字符串,例如:
y4ekin9u3#
这是唯一讨论这个错误的地方。所以这不是这个问题的完美答案,但我希望它对其他人有用。
我没有一个表单,只有一个URL需要检查,但是当一个用户以我不希望的方式进入这个页面时,它应该不会引发错误。所以我把所有的东西都放在了一个if语句中。
oxcyiej74#
busg9geu5#
如果您愿意,可以将其放在一行中: