我目前正在使用一个系统,任何人在输入/{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
)
访问播放器和个人资料应用的网址工作正常,我做错了什么?
答案 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”这个词,它将显示管理面板。对于其他网址,它会继续,并且会根据这些网址匹配玩家名称。