我正在尝试将搜索导航栏设置为在我的网站上运行,但我一直收到此错误,我不会解码。
我在Python 2.7上使用django 1.8
我的模板html文件位于下方。
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="{% url 'home' %}">Home</a></li>
<form class="navbar-form navbar-left" method="GET" role="search" action="{% url 'product' %}">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search" name="q" value='{{ request.GET.q }}'>
</div>
</form>
我的整体网址文件如下。
from django.conf import settings
from django.conf.urls import include, url
from django.conf.urls.static import static
from django.contrib import admin
urlpatterns = [
# Examples:
url(r'^$', 'newsletter.views.home', name='home'),
url(r'^contact/$', 'newsletter.views.contact', name='contact'),
url(r'^about/$', 'ecommerse2.views.about', name='about'),
# url(r'^blog/', include('blog.urls')),
url(r'^product/', include('product.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^accounts/', include('registration.backends.default.urls')),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我的本地应用网址在下方。
from django.conf import settings
from django.conf.urls import include, url
from django.conf.urls.static import static
from django.contrib import admin
from .views import ProductDetailView, ProductListView
urlpatterns = [
# Examples:
url(r'^$', ProductListView.as_view(), name='Class_based_List_vie'),
url(r'^(?P<pk>\d+)/$', ProductDetailView.as_view(), name='Class_based_vie'),
#url(r'^(?P<id>\d+)', 'product.views.product_det_vie_func', name='Detail_view_func'),
]
对于上面的代码突出显示以下行并获得404错误 / product /的NoReverseMatch和没有找到参数'()'和关键字参数'{}'的'product'的反向。尝试了0种模式:[]。
<form class="navbar-form navbar-left" method="GET" role="search" action="{% url 'product' %}">
请帮我纠正上述错误。
提前致谢
答案 0 :(得分:0)
网址解析器期待pk
参数。尝试:
action="{% url 'product' pk=product.id %}"
product
必须从视图
答案 1 :(得分:0)
问题是由于您没有任何名称为&#34;产品&#34; 的网址。
如果您尝试从视图&#34; Class_based_List_vie&#34;中搜索产品,则应在模板中包含url标记,如{% url 'Class_based_List_vie' %}
。
在模板中,url的名称包含在url标记中,而不是url本身。 如果您使用的是多个应用,那么强烈建议使用命名空间网址。
如果你可以分享观点,那么调试会更有帮助。