python - django1.8 出现NoReverseMatch异常
黄舟
黄舟 2017-04-17 15:05:24
[Python讨论组]
环境: python 3.4.3  django-1.8.2

在展示详细内容时出现这个异常:

NoReverseMatch at /
Reverse for 'detail' with arguments '()' and keyword arguments '{'pk_id': 2}' not found. 1 pattern(s) tried: ['$qs/(?P<pk_id>[0-9]+)/$']

其中有关的文件如下:

index.html

{% for item in post_latest %}
   <h1 class="title transition"><a href="{% url 'detail'  pk_id=item.pk %}">{{item.brief}}</a></h1>
{% endfor %}

urls.py

urlpatterns = [
    url(r'^$', views.IndexView.as_view(), name='index'),

    url(r'^qs/(?P<pk_id>[0-9]+)/$', views.detail, name='detail'), 
]

views.py

def detail(request, pk_id):
    detail_qs = get_object_or_404(Qs, pk=pk_id)
    return render(request, 'qs/node/detail.html', {'detail': detail_qs})

当把index.html中的内容改成如下时,则没有这个异常

<h1 class="title transition"><a href="qs/{{item.id}}/">{{item.brief}}</a></h1>

但是按照django的规范中,还是最开始的写法符合,但是却一直报异常,google未果,所以求帮助

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
黄舟

你在外层的 urlpatterns 用了 include 吧?
include() 的时候,请不要加 $

伊谢尔伦

这句

{% url 'detail'  pk_id=item.pk %}

你确定pk_id的值是 item.pk 还是 item.id,你下面的例子是后者,一般说来 pk的值和id是一样的。

伊谢尔伦

{% url 'appname:model' parameter %} 要指定app的名称

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号