Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django admin向用户和组添加上下文_Python_Django_Django Admin - Fatal编程技术网

Python Django admin向用户和组添加上下文

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']

我正在定制django的管理页面,在管理员的
用户
模板的添加、更改、更改列表中传递一些变量时遇到了麻烦

我已通过以下方式在索引或任何其他页面中传递变量:

#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)