如何允许我的django管理控制台URL优先?

时间:2014-08-29 13:50:14

标签: django django-urls

我目前正在使用一个系统,任何人在输入/{username}作为网址时都可以看到用户的公开个人资料。

这在某种程度上是优先考虑因此我不能再访问管理控制台/admin

如何使/admin优先?

urls.py

from django.conf.urls import patterns, include, url
from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',
(r'^player/', include('player_details.urls')),
(r'^profile/', include('userprofile.urls')),
url(r'^admin/', include(admin.site.urls)), # enable administration
url(r'^(?P<username_in_url>\w+)/$', 'fantasymatchday_1.views.public_profile'), #user public profile logged in
url(r'^(?P<username_in_url>\w+)/$', 'fantasymatchday_1.views.public_profile_anon'), #user public profile anonymous
)

访问播放器和个人资料应用的网址工作正常,我做错了什么?

2 个答案:

答案 0 :(得分:1)

您对问题的诊断是错误的。您在对Simeon的评论中引用的错误并不表示管理员URL会转到个人资料页面:无论如何,它不会,因为管理模式已经位于您的网址中的个人资料之前。

但错误很明显:视图功能&#34; fantasymatchday_1.views.public_profile_anon&#34;不存在。创建它,或从URL中删除对它的引用。 (无论如何它似乎完全无关紧要,因为它与之前的URL完全相同,因此它永远不会被调用。但是如果你从urlpatterns引用它,它仍然需要存在。)

答案 1 :(得分:0)

您需要先输入管理员网址:

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)), # enable administration
    ...

这意味着它将首先与该网址匹配,对于“admin”这个词,它将显示管理面板。对于其他网址,它会继续,并且会根据这些网址匹配玩家名称。