Django 版本 3.2.4
我正在尝试更改管理站点使用的默认index_title
,site_header
和。site_title
我在这里尝试了所有建议,但登录页面拒绝使用更新后的值。事实上,所需的上下文(site_header
在下面的示例中)是空的(通过覆盖模板并使用此处{{ debug }}
描述的变量来确认)并且正在使用“Django 管理”的“默认”值。模板中的一行:C:\Program Files\Python38\Lib\site-packages\django\contrib\admin\templates\admin\base_site.html
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('Django administration') }} a</a></h1>
我目前在我的应用程序admin.py
文件中覆盖了所有三个变量,并且在我登录后正在使用更新的值,但它在初始登录页面上不起作用:
admin.site.site_header = 'My Site Header'
admin.site.index_title = 'My Index Title'
admin.site.site_title = 'My Site Title'
我可以覆盖base_site.html
模板并硬编码一个值,但我想了解为什么这是必要的,并弄清楚如何将一些上下文传递给该覆盖的模板。我已经尝试了所有覆盖此处描述的原始上下文的方法,但均无济于事。这包括拥有一个覆盖默认管理站点的自定义管理站点。我还注意到在初始登录页面上没有调用each_context方法,但是在我登录并查看管理页面后调用它。
我认为某些问题可能源于我的urlpatterns
设置方式urls.py
。我已经将其设置为这样,因此地址栏中显示的登录 URL 对于站点的管理员和非管理员部分都是相同的。
urlpatterns = [
path('', include('my_app.urls')),
path('login', auth_views.LoginView.as_view(template_name='admin/login.html')),
path('login/', auth_views.LoginView.as_view(template_name='admin/login.html')),
path('logout', auth_views.LogoutView.as_view()),
path('logout/', auth_views.LogoutView.as_view()),
path('admin/login', generic_views.RedirectView.as_view(url='/admin', permanent=True, query_string=False)),
path('admin/login/', generic_views.RedirectView.as_view(url='/admin', permanent=True, query_string=False)),
path('admin/logout', auth_views.LogoutView.as_view()),
path('admin/logout/', auth_views.LogoutView.as_view()),
path('admin/', admin.site.urls)
]
我也专门使用django_auth_ldap.backend.LDAPBackend
:
AUTHENTICATION_BACKENDS = [
'django_auth_ldap.backend.LDAPBackend'
]
任何指导将不胜感激。