在django中使用绝对URL时,/ posts /中的NoReverseMatch

时间:2016-03-10 11:48:59

标签: python django

在我的model.py中,我定义了一个类:

def get_absolute_url(self):
    return reverse("posts:detail", kwargs={"id":self.id})

在url.py(项目网址)

    urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^posts/', include("posts.urls", namespace='posts')),
]

在url.py(app url)

    urlpatterns = [
    url(r'^$', post_list),
    url(r'^create/$', post_create),
    url(r'^(?P<id>\d+)/$', post_detail, name='detail'),
    url(r'^update/$', post_update),
    url(r'^delete/$', post_delete),
]

在index.html中

{% for obj in object_list %}
{% url "posts:detail" id=obj.id %}
<a href='{{ obj.get_absolute_url }}'>{{ obj.title }}</a><br/>
{{ obj.content }}<br/>
{{ obj.timestamp }}<br/>
{{ obj.updated_date }}<br/>
{{ obj.id }}<br/>

{% endfor %}

重新加载时,它会给出

Reverse for 'detail' with arguments '()' and keyword arguments '{'id': 1}' not found. 0 pattern(s) tried: []

1 个答案:

答案 0 :(得分:0)

URLpatternsreverse来电的代码看起来没问题,对我来说效果很好。我会检查视图函数是否有参数id,并且您没有加载缓存的结果。此外,它可能与正在加载的旧pyc文件有关,请尝试将其删除为@knbk建议。