【问题标题】:How do I allow my django admin console URL to take priority?如何让我的 django 管理控制台 URL 优先?
【发布时间】:2014-10-23 13:13:41
【问题描述】:

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

这以某种方式获得了优先权,因此我无法再访问管理控制台/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
)

播放器和个人资料应用程序的 URL 工作正常,我做错了什么?

【问题讨论】:

    标签: django django-urls


    【解决方案1】:

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

    但是,错误非常明显:视图函数“fantasymatchday_1.views.public_profile_anon”不存在。要么创建它,要么从 url 中删除对它的引用。 (无论如何,它似乎完全无关紧要,因为它与之前的 url 完全相同,所以它永远不会被调用。不过,如果你从 urlpatterns 引用它,它无论如何都需要存在。)

    【讨论】:

    • 啊,我明白了,没有意识到它必须存在,它上面的其他人才能正常工作。谢谢!
    【解决方案2】:

    您需要先输入管理网址:

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

    这意味着它将首先与该 URL 匹配,对于单词“admin”,它将显示管理面板。对于其他 URL,它将继续,并将玩家名称与这些 URL 进行匹配。

    【讨论】:

    • 我试过了,还是不行。错误消息是 'ViewDoesNotExist at /admin/ 无法导入 Fantasymatchday_1.views.public_profile_anon。模块 Fantasymatchday_1.views 中不存在视图。'
    • 另外,它已经在用户名行的上方,所以它肯定应该适用于该理论
    猜你喜欢
    • 2016-02-07
    • 2013-02-24
    • 2020-04-25
    • 1970-01-01
    • 2021-09-29
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多