Django反向映射

时间:2013-07-08 16:24:10

标签: django

我有以下文件

目录/ urls.py (项目)

url(r'^$', include('dirapp.urls', namespace='dirapp')),

dirapp / urls.py (app)

url(r'^detail/(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail')

但是当我进入贝壳时,我无法做反向,所有这些都不是成功的

reverse('dirapp')
reverse('dirapp:detail', kwargs={'pk':1})

2 个答案:

答案 0 :(得分:2)

删除$

中的url(r'^$', include('dirapp.urls', namespace='dirapp'))

这表示URL模式结束。

应该是

url(r'^', include('dirapp.urls', namespace='dirapp'))

详细了解including URL patterns here

答案 1 :(得分:1)

这是不正确的

views.DetailView.as_view()

必须从DetailView扩展正确的视图,例如

views.PersonDetail.as_view()

第二件事,遗憾的是你需要重新启动shell才能使更改生效!

此外,如果存在命名空间,则需要使用此

来解析所有网址
reverse('namespace:name'), e.g. reverse('dirapp:index')