- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了一些自定义管理页面触发 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/
这个问题已经有答案了: Why do I get "AttributeError: NoneType object has no attribute" using Tkinter? Where did
我有一个列表,我想从中删除没有出现在另一个列表中的项目。我试过以下方法: for w in common: for i in range(1,n): if no
我遇到了一些自定义管理页面触发 Django 管理站点而不是显示我的自定义页面的问题。 我的 urls.py 如下: urlpatterns = patterns('', # ... trim
我尝试使用 href 方法下载 CSV 文件,但是将其设置为 href 标记时数据似乎被 chop 。对于 IE,我使用了 msSaveBlob,它似乎工作正常并且所有数据都已正确下载。
我是一名优秀的程序员,十分优秀!