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

时间:2016-04-01 15:14:40

标签: python django django-admin

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

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

1 个答案:

答案 0 :(得分:1)

您可以覆盖add_viewchange_viewchangelist_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)