Python Django 1.10:设置admin.site.site_头并使用默认管理员登录视图
我正在尝试(在项目层面):Python Django 1.10:设置admin.site.site_头并使用默认管理员登录视图,python,django,Python,Django,我正在尝试(在项目层面): 使用默认的管理员视图(auth.views.login)作为我的登录视图 在ulrs.py中设置admin.site.site\u标题,使其显示在登录和管理页面上 首先,这样做会更新管理页面上的site\u标题 # urls.py admin.site.site_header = "my header name" urlpatterns = [ url(r'^admin/?', admin.site.urls), url(r'^', inclu
- 使用默认的管理员视图(
)作为我的登录视图auth.views.login
- 在
中设置ulrs.py
,使其显示在登录和管理页面上admin.site.site\u标题
site\u标题
# urls.py
admin.site.site_header = "my header name"
urlpatterns = [
url(r'^admin/?', admin.site.urls),
url(r'^', include('django.contrib.auth.urls')),
...
]
从这里看来,我应该可以这样做:
# registration/login.html
{% extends "admin/login.html" %}
或者(从django/admin/templates/login.html复制/粘贴):
而admin/sites.py
负责定义AdminSite
,它为管理站点设置site\u头
class AdminSite(object):
...
def each_context(self, request):
"""
Returns a dictionary of variables to put in the template context for
*every* page in the admin site.
For sites running on a subpath, use the SCRIPT_NAME value if site_url
hasn't been customized.
"""
script_name = request.META['SCRIPT_NAME']
site_url = script_name if self.site_url == '/' and script_name else self.site_url
return {
'site_title': self.site_title,
'site_header': self.site_header,
'site_url': site_url,
'has_permission': self.has_permission(request),
'available_apps': self.get_app_list(request),
}
...
我知道如何创建自己的base_site.html
(硬编码{{“我的头名}}}
)以用于上面的复制/粘贴login.html
,但这看起来很混乱。我想在一个地方设置这个变量,并尽可能直接使用admin
我最感兴趣的是基本上为普通用户帐户使用管理应用程序。我这样做错了吗
我的高层次兴趣是基本上背上管理员应用程序
普通用户帐户。我做错了吗
不幸的是,是的,你是
管理员不是供站点访问者使用的。它是为站点用户使用的
经理
使用众多经过尝试和测试的registrion/auth软件包(例如django allauth)添加身份验证系统非常容易,因此尝试将django admin重新用作用户级应用程序既浪费资源,也不十分安全。您会推荐
django allauth
吗不太安全),似乎有人希望他们的管理员是安全的…你建议不要使用管理员模块吗?是的,强烈推荐django allauth。不要将管理员用于普通用途,使用CBV构建一些东西
# auth/view.py
def login(...
current_site = get_current_site(request)
context = {
'form': form,
redirect_field_name: redirect_to,
'site': current_site,
'site_name': current_site.name,
}
...
class AdminSite(object):
...
def each_context(self, request):
"""
Returns a dictionary of variables to put in the template context for
*every* page in the admin site.
For sites running on a subpath, use the SCRIPT_NAME value if site_url
hasn't been customized.
"""
script_name = request.META['SCRIPT_NAME']
site_url = script_name if self.site_url == '/' and script_name else self.site_url
return {
'site_title': self.site_title,
'site_header': self.site_header,
'site_url': site_url,
'has_permission': self.has_permission(request),
'available_apps': self.get_app_list(request),
}
...