Python NoReverseMatch at/Django 1.10
我使用的是Django 1.10,我遇到了以下错误: 诺维塞马奇/ 找不到具有参数和关键字参数“{pk':1}”的“views.product_detail”的反向。已尝试0个模式:[] 这是我的index.html模板:Python NoReverseMatch at/Django 1.10,python,django,Python,Django,我使用的是Django 1.10,我遇到了以下错误: 诺维塞马奇/ 找不到具有参数和关键字参数“{pk':1}”的“views.product_detail”的反向。已尝试0个模式:[] 这是我的index.html模板: {% for pr in product %} <li> {{ pr.pk }} <a href="{% url 'views.product_d
{% for pr in product %}
<li>
{{ pr.pk }}
<a href="{% url 'views.product_detail' pk=pr.pk %}">
{{ pr.name }}
</a>
|| {{ pr.description }} || <img src="{{ pr.image.url }}">
</li>
{% endfor %}
我的应用程序URL.py是:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', include('products.urls') ),
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.hello_world, name='hello'),
url(r'^product/(?P<pk>[0-9]+)/$', views.product_detail,name='product_detail'),
]
错误消息是:
谢谢你的帮助 NoReverseMatch表示Django没有将您请求的URL与URL.py中的任何URL匹配 看起来r“^$”找不到任何内容,因为该模式没有包含任何文本的空间。将项目URL中的r“^$”更改为r或r“^products/”。这样,您的URL将如下所示:
'/products/product/1/' # For product_detail
'/products/' # For views.hello_world
问题在于如何包含产品URL。您已经用$终止了该包含模式,因此以后将不会有任何匹配。包括时,切勿使用$
url(r'', include('products.urls') ),
你不应该像那样使用URL标签。相反,使用permalink装饰器。嗨,克里斯,我将r'^$'更改为r'^/$,现在消息页面找不到404请求方法:获取请求URL:使用Shoppy.URL中定义的URLconf,Django尝试了这些URL模式,顺序如下:^admin/^/$[name='hello']products/?P[0-9]+/$[name='product\u detail']^media\/?P.$当前URL,这些都不匹配。谢谢你的帮助
url(r'', include('products.urls') ),