Python Django-将`admin/login.html`模板用作普通登录模板时,更改site_标题
我正在尝试使用django的Python Django-将`admin/login.html`模板用作普通登录模板时,更改site_标题,python,django,templates,Python,Django,Templates,我正在尝试使用django的admin/login.html模板作为普通用户的登录模板 问题是它在登录表单的顶部显示“Django管理”,我想对此进行更改 我知道可以通过一个简单的admin.site.site\u头='login'来改变这一点 问题是:这只在浏览/admin/login时有效,而不是/login时有效 下面是我的url.conf的样子 from django.conf.urls import include, url from django.contrib.auth impor
admin/login.html
模板作为普通用户的登录模板
问题是它在登录表单的顶部显示“Django管理”,我想对此进行更改
我知道可以通过一个简单的admin.site.site\u头='login'
来改变这一点
问题是:这只在浏览/admin/login
时有效,而不是/login
时有效
下面是我的url.conf
的样子
from django.conf.urls import include, url
from django.contrib.auth import views as auth_views
from django.contrib import admin
admin.site.site_header = 'Log in'
admin.autodiscover()
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^login/$', auth_views.login, {'template_name': 'admin/login.html'},
name='login'),
url(r'^logout/$', auth_views.logout, {'next_page': '/'}, name='logout'),
url(r'^', include('qa.urls', app_name='qa', namespace='qa')),
]
浏览/login
时,我获得Django管理
标题;浏览/admin/login
时,我获得登录
标题
有没有一种方法可以在不创建自己的模板的情况下解决此问题?您需要将名为
site\u header
的上下文变量传递到您的url.py
中,但这会重复整个过程:
url(
r'^login/$',
auth_views.login,
{
'template_name': 'admin/login.html',
'extra_context': {'site_header': 'Log In'},
},
name='login'
)
另一种可能是创建并填充站点标题
另一种可能是将
admin/base\u site.html
复制到您的templates
目录并覆盖标题。我最后使用了您提到的最后一种可能:复制/粘贴(啊,难看)admin/login.html
并用我想要的内容覆盖{%block branding%}
!这并不难看,但在Django中非常常用:)