我是Django的新手,也许提出的问题不是最好的,对此感到抱歉。我正在尝试实现搜索功能,但它似乎与路径不匹配,但工作正常。
单击提交按钮后,我希望它看起来像这样search/query=value
。
不过,我得到这个:/ru/”/ru/search/”?csrfmiddlewaretoken=SSoBp5K7E0EgRFQNyIvECSXFohG5ACp9IKNGKXMOYNmdc8BqqHeKLR8vawHuVxwf&”txtSearch”=1
。
我正在使用i18n为语言加上路径前缀。
这是与问题相关的代码:
urls.py
urlpatterns = [
path('', HomeView.as_view(), name='home'),
path('search/', search, name='search'),
]
home.html
<form id=”search” method=”GET” action=”{% url 'search' %}”>
<input type=”text” id=”txtSearch” name=”txtSearch”>
<button type=”submit”>Submit</button>
</form>
views.py
def search(request):
if request.method == 'GET':
query = request.GET['”txtSearch”']
queryset = []
queries = query.split(' ')
for q in queries:
articles = Article.objects.filter(
Q(name__icontains=q) |
Q(body__icontains=q)
).distinct()
for article in articles:
queryset.append(article)
return render(request, 'search.html', {'articles': list(set(queryset))})
谢谢!
尝试这个:
<form id=”search” method=”GET” action="search">
<input type=”text” id=”txtSearch” name=”txtSearch”>
<button type=”submit”>Submit</button>
</form>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句