2016-03-09 60 views
0

我正在自定義django的管理頁面,並在傳遞管理的usergroup模板的add,change,change_list中的某個變量時撞到了一堵磚牆。Django admin爲用戶和組添加上下文

我已經在指數或任何其他頁面通過傳遞一個變量:

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

class MyModelAdmin (admin.ModelAdmin): 
    def change_view(self, request, object_id, form_url='', extra_context=None): 
    .... 

但我怎麼能傳遞變量到groupsuser模板(身份驗證和授權)他們的changelist_view,change_viewadd_view

+0

你是什麼意思爲'groups'和'user'添加上下文?他們已經在上下文中通過'request.user' –

+0

我的意思是在'auth.User'和'auth.Group'的'change_view','changelist_view'或'add_view'中添加一些變量,以便我可以在他們的模板 –

回答

0

project/__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) 

您還可以覆蓋add_form_templatechange_form_templatechange_list_template和其他指向自己的自定義模板。

查看Django source瞭解這些模板的更多詳情。