Python Django-将`admin/login.html`模板用作普通登录模板时,更改site_标题

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

我正在尝试使用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 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中非常常用:)