gpt4 book ai didi

python - "admin"子目录触发(无意中)Django 管理页面

转载 作者:行者123 更新时间:2023-11-28 17:47:23 27 4
gpt4 key购买 nike

我遇到了一些自定义管理页面触发 Django 管理站点而不是显示我的自定义页面的问题。

我的 urls.py 如下:

urlpatterns = patterns('',
# ... trimmed ...

# Admin pages
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),

# Lobby Visitor Log
url(r'^visitorLog', include('lobbyVisitorLog.urls')),
)

在我的 lobbyVisitorLog 应用程序中,我有以下目录结构,指向“管理”页面

lobbyVisitorLog
- templates
- admin

我的 lobbyVisitorLog/urls.py 如下:

urlpatterns = patterns('visitorLog.views',
url(r'^/$', views.home, name='homeView'),
url(r'^/search', views.search, name='searchView'),
url(r'^/submit', views.submit, name='submitView'),

url(r'^/admin/$', views.adminView, name='adminView'),
url(r'^/admin/import/$', views.adminImportView, name='adminImportView'),

url(r'^/(?P<guest_type>\w+)$', views.logEntry, name='logEntryView'),
)

管理索引页面的 views.py 如下所示:

def adminView(request):
return render(request, 'admin/index.html', {}, context_instance=RequestContext(request))

当我转到“mysite/visitorLog/admin/”时,我看到 Django 管理站点显示以下消息:“您无权编辑任何内容。”

但是,如果我将我的“admin”目录更改为“utils”(或除“admin”以外的任何其他目录)并相应地更新我的 views.py,一切都会按预期显示!没关系,我可以处理我的目录被称为“utils”,但它会惹恼我......就够了。

发生了什么导致加载 Django 管理页面而不是我的自定义页面?

最佳答案

默认情况下,django 首先检查您在 TEMPLATE_DIRS 中的每个路径中的“admin/index.html”。如果在那里找不到它,它将开始在模板目录中搜索 INSTALLED_APPS 设置中的每个应用程序。

如果 'django.contrib.admin'INSTALLED_APPS 中首先列出,它将使用 django.contrib 中同名的 'admin/index.html' 模板.admin 应用程序。

'django.contrib.admin' 移动到 INSTALLED_APPS 中的最后位置应该允许它首先在您的 lobbyVisitorLog 应用程序中找到 'admin/index.html',但是这会破坏管理站点,因为它会使用您的应用程序 lobbyVisitorLog 中的“admin/index.html”。

解决这个问题的一个好方法是在应用的模板目录中始终有一个以您的应用命名的子目录。例如:

lobbyVisitorLog
- templates
- lobbyVisitorLog
- admin
- index.html

然后更新 View 的模板路径:

def adminView(request):
return render(request, 'lobbyVisitorLog/admin/index.html', {}, context_instance=RequestContext(request))

您可以找到有关 Django 如何加载模板的更多信息 here

关于python - "admin"子目录触发(无意中)Django 管理页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16110968/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com