Python Django admin向用户和组添加上下文
我正在定制django的管理页面,在管理员的Python Django admin向用户和组添加上下文,python,django,django-admin,Python,Django,Django Admin,我正在定制django的管理页面,在管理员的用户和组模板的添加、更改、更改列表中传递一些变量时遇到了麻烦 我已通过以下方式在索引或任何其他页面中传递变量: #admin.py class MyAdminSite(AdminSite): def index(self, request, extra_context=None): extra_context = extra_context or {} extra_context['Sched_today']
用户和组模板的添加、更改、更改列表中传递一些变量时遇到了麻烦
我已通过以下方式在索引或任何其他页面中传递变量:
#admin.py
class MyAdminSite(AdminSite):
def index(self, request, extra_context=None):
extra_context = extra_context or {}
extra_context['Sched_today'] = mycustomlink
return super(MyAdminSite, self).index(request, extra_context=extra_context)
或
但是如何将变量传递给组
和用户
模板(身份验证和授权),它们的变更列表视图
,变更视图
,或添加视图
?在项目/\uuuuuuuuuuuuuuu.py
中,您可以这样做
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
class MyUserAdmin(UserAdmin):
list_display = UserAdmin.list_display + ('is_superuser',)
def change_view(self, request, object_id, form_url='', extra_context=None):
if extra_context is None:
extra_context = {"some_var": 1337}
return super(MyUserAdmin, self).change_view(
request, object_id=object_id, form_url=form_url, extra_context=extra_context)
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
您还可以覆盖添加表单模板
、更改表单模板
、更改列表模板
和其他内容,以指向您自己的自定义模板
查看这些模板的更多详细信息。首先注销模型,然后使用自己的管理员重新注册它们:
来自django.contrib导入管理
从django.contrib.auth导入get\u user\u模型
类UserAdmin(admin.ModelAdmin):
def change_视图(自身、请求、对象_id、表单_url=”、额外_上下文=无):
引发许可错误(“Boo”)
admin.site.unregister(获取用户模型())
admin.site.register(get_user_model(),UserAdmin)
向组和用户添加上下文是什么意思?它们已经通过请求进入上下文。user
我的意思是在auth.user
和auth.Group
的change\u view
、changelist\u view
或add\u view
中添加一些变量,这样我就可以在它们的模板中显示一些内容。在加载应用程序之前,您无法从init.py导入这些变量。这是行不通的。
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
class MyUserAdmin(UserAdmin):
list_display = UserAdmin.list_display + ('is_superuser',)
def change_view(self, request, object_id, form_url='', extra_context=None):
if extra_context is None:
extra_context = {"some_var": 1337}
return super(MyUserAdmin, self).change_view(
request, object_id=object_id, form_url=form_url, extra_context=extra_context)
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)