我尝试获取动态链接
错误:
/
处的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})
答案 0 :(得分:0)
您正在混合使用两种语法变体来指定模式。从django-2.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"),
]