admin.site.root和admin.site.urls之间的区别

Luc*_*cas 2 django django-urls django-admin

在第6章关于管理站点的The Django Book中,他们告诉我将以下URLpattern添加到urls.py:

urlpatterns = patterns('',
    # ...
    (r'^admin/', include(admin.site.urls)),
    # ...
)
Run Code Online (Sandbox Code Playgroud)

但是要使它在我的系统上运行,我必须取消注释以下行:

(r'^admin/(.*)', admin.site.root),
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我有什么不同之处吗?

Dan*_*man 7

不幸的是,Gabriel和Antti都错了.

admin.site.root是版本1.0的行为.如果您已下载1.0或1.0.2,那就是您应该使用的.

但是,最近Django管理员的URL处理发生了一些变化,这些变化是尚未发布的1.1的一部分.这些主要是为了使用reverse()函数来查找管理URL.因此,如果您最近检查了代码,则需要使用admin.site.urls.

您的链接是Django Book的第二版,它正在针对1.1版进行更新 - 而Gabriel所引用的文档也适用于当前的结帐,其中包含新版本.

(为了完整起见,我注意到在newforms-admin合并之前,Django的版本,在1.0之前,使用admin.urls,不是admin.site.urlsadmin.site.root.)