0

我有以下文件

目录/urls.py(项目)

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

dirapp/urls.py(应用程序)

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

但是当我去shell时我不能做反向,所有这些都不成功

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

2 回答 2

2

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

这表示 URL 模式的结束。

它应该是

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

在此处阅读有关包含 URL 模式的更多信息

于 2013-07-08T16:29:01.667 回答
1

这是不正确的

views.DetailView.as_view()

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

views.PersonDetail.as_view()

第二件事,不幸的是,您需要重新启动 shell 才能使更改生效!

此外,如果有一个命名空间,所有的 url 都需要使用这个来解析

reverse('namespace:name'), e.g. reverse('dirapp:index')
于 2013-07-09T04:22:33.233 回答