Skip to main content
 首页 » 编程设计

python之Django 管理员将变量传递给用户和组模板

2025年04月02日45exmyth

我可以通过以下方式将变量传递给管理索引页面中的模板:

class MyAdminSite(AdminSite): 
    def index(self, request, extra_context=None): 
        extra_context = extra_context or {} 
        extra_context['Sched_today'] = date.today() 
        return super(MyAdminSite, self).index(request, extra_context=extra_context) 

但是我如何将变量传递给管理员用户和组的模板(changelist_view、change_view、add_view)

请您参考如下方法:

您可以覆盖add_view、change_view 和changelist_view model admin methods .

from django.contrib.auth.admin import UserAdmin 
 
class MyUserAdmin(UserAdmin): 
 
    def add_view(self, request, form_url='', extra_context=None) 
        extra_context = extra_context or {} 
        extra_context['Sched_today'] = date.today() 
        return super(MyUserAdmin, self).add_view(request, form_url, extra_context) 

UserAdmin 的子类很重要,否则您将遇到密码问题。请记住先注销 User 模型,然后再注册您自己的模型管理员。

admin.site.unregister(User) 
admin.site.register(User, MyUserAdmin)