NoReverseMatch at ...... 在 django 中
NoReverseMatch at ...... in django
我正在开发一个博客网站,您可以在其中使用关键字搜索(基本上是普通搜索栏)来搜索帖子。
我已经从 django.db.models
导入了 Q
我创建的视图:
def search(request):
queryset = Article.objects.all()
query = request.GET.get('q')
if query:
queryset = queryset.filter(
Q(title__icontains=query) |
Q(overview__icontains=query)
).distinct()
context = {
'queryset': queryset,
}
return render(request, 'search_results.html', context)
网址格式:
path('search/', search, name='search-results'),
表单本身:
<form action="{% url 'search' %}" class="search-form">{% csrf_token %}
<button type="submit" class="submit"><i class="icon-search"></i></button>
<div class="form-group">
<span class="icon icon-search"></span>
<input type="text" class="form-control" name="q" placeholder="Type a keyword and hit enter">
</div>
</form>
当我想访问我放入此表单的页面时,它说:
找不到 'search' 的反向。 'search' 不是有效的视图函数或模式名称。
下面也显示了这个:
1 <!DOCTYPE html>
2 <html lang="en">
3
4 {% include 'head.html' %}
5
6 <body>
7
8 {% include 'header.html' %}
9
10 {% block content %}
我试过adding/removingcsrf_token和提交按钮,但结果总是一样。请帮忙!
我假设该表格是 head.html
的一部分。您不需要 csrf_token
,因为它不是 post
形式。
在 urlpatterns
中,将您的 url 条目更改为:
path('search/', views.search, name='search'),
在模板中,action="{% url 'search' %}"
指的是 url 的名称...您还可以将 role='search'
属性添加到表单中。希望对你有帮助
当您使用 {% url '' %}
标签时,它会尝试根据 url 名称查找 url。您必须在其中使用 url 个名称。请将{% url 'search' %}
改为{% url 'search-results' %}
我正在开发一个博客网站,您可以在其中使用关键字搜索(基本上是普通搜索栏)来搜索帖子。
我已经从 django.db.models
导入了 Q我创建的视图:
def search(request):
queryset = Article.objects.all()
query = request.GET.get('q')
if query:
queryset = queryset.filter(
Q(title__icontains=query) |
Q(overview__icontains=query)
).distinct()
context = {
'queryset': queryset,
}
return render(request, 'search_results.html', context)
网址格式:
path('search/', search, name='search-results'),
表单本身:
<form action="{% url 'search' %}" class="search-form">{% csrf_token %}
<button type="submit" class="submit"><i class="icon-search"></i></button>
<div class="form-group">
<span class="icon icon-search"></span>
<input type="text" class="form-control" name="q" placeholder="Type a keyword and hit enter">
</div>
</form>
当我想访问我放入此表单的页面时,它说: 找不到 'search' 的反向。 'search' 不是有效的视图函数或模式名称。
下面也显示了这个:
1 <!DOCTYPE html>
2 <html lang="en">
3
4 {% include 'head.html' %}
5
6 <body>
7
8 {% include 'header.html' %}
9
10 {% block content %}
我试过adding/removingcsrf_token和提交按钮,但结果总是一样。请帮忙!
我假设该表格是 head.html
的一部分。您不需要 csrf_token
,因为它不是 post
形式。
在 urlpatterns
中,将您的 url 条目更改为:
path('search/', views.search, name='search'),
在模板中,action="{% url 'search' %}"
指的是 url 的名称...您还可以将 role='search'
属性添加到表单中。希望对你有帮助
当您使用 {% url '' %}
标签时,它会尝试根据 url 名称查找 url。您必须在其中使用 url 个名称。请将{% url 'search' %}
改为{% url 'search-results' %}