NoReverseMatch位于/清单

时间:2018-09-02 11:32:18

标签: django python-3.x django-views

我尝试获取动态链接

错误:

  

/

处的NoReverseMatch      

找不到带有关键字参数'{'pk':1}'的'new_single'。   尝试了1个模式:['single /']

代码: 查看:

{% for new in news %}

    {{ new.id }}
     <h2><a href="{% url 'new_single' pk=new.id %}">{{ new.title }}</a></h2>
{% endfor %}

网址:

urlpatterns = [
    url(r'^$', views.news_list, name='news_list'),
    url(r'single/<int:pk>', views.new_single, name="new_single"),
]

观看次数:

def new_single(request,pk):
    new=get_object_or_404(News,id=pk)
    return render(request,"news/news_single.html",{"new":new})

1 个答案:

答案 0 :(得分:0)

您正在混合使用两种语法变体来指定模式。从开始,有两种方法可以指定URL模式:path(..) [Django-doc]re_path(..) [Django-doc]用于表示类似正则表达式的模式(别名为url(..) [Django-doc])。

但是您将两者混在一起。您可以同时使用两者,但是您需要指定 per urlpatterns项中正确的一项:

#  app/urls.py

from django.urls import path, re

urlpatterns = [
    url(r'^$', views.news_list, name='news_list'),
    path('single/<int:pk>/', views.new_single, name="new_single"),
]