2009-05-19 9 views

उत्तर

5

मूलतः Customizing an Admin form in Django while also using autodiscover

देखें, तो आप आप चाहते हैं सुविधाओं के साथ एक स्वनिर्धारित व्यवस्थापक वर्ग को परिभाषित।

फिर अपनी संशोधित व्यवस्थापक कक्षा को पंजीकरण और पंजीकृत करें।

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

के बाद से संस्करण 1.3 यह using this किया जा सकता है: के रूप में @

list_filter = ('groups__name') 
बेशक

S.Lott बताते हैं आप admin.py फ़ाइल में अपने अनुकूलित वर्ग रजिस्टर करना होगा:

from django.contrib import admin 
from django.contrib.auth.admin import UserAdmin 
from django.contrib.auth.models import User 

class MyUserAdmin(UserAdmin): 
    list_filter = UserAdmin.list_filter + ('groups__name',) 

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

अच्छा, धन्यवाद! लेकिन यह समूह के सूची के बाद "नाम से" के रूप में दिखाई देता है, जो थोड़ा उलझन में है, यह बेहतर होगा अगर यह "समूह द्वारा" – thnee

+0

मैं @ थनी से सहमत हूं। यह इस 'list_filter = (' समूह ',) की तरह हासिल किया जा सकता है – laltin

4

यहां एक पूरा उदाहरण है, जो सरल लिस्टफिल्टर से प्राप्त होता है, जो Django 1.4 और बाद में उपलब्ध है।

https://docs.djangoproject.com/en/1.4/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter

यह पूरी तरह से कस्टम फिल्टर बनाने के लिए सभी उपलब्ध लेबल और मानकों की स्थापना का समर्थन है।

यह सभी उपलब्ध समूहों की सूची के साथ फ़िल्टर पैनल में "समूह द्वारा" के रूप में दिखाई देता है।

from django.contrib.admin import SimpleListFilter 
from django.contrib.auth.models import Group 
from django.utils.translation import ugettext as _ 

class GroupListFilter(SimpleListFilter): 
    title = _('group') 
    parameter_name = 'group' 

    def lookups(self, request, model_admin): 
     items =() 
     for group in Group.objects.all(): 
      items += ((str(group.id), str(group.name),),) 
     return items 

    def queryset(self, request, queryset): 
     group_id = request.GET.get(self.parameter_name, None) 
     if group_id: 
      return queryset.filter(groups=group_id) 
     return queryset 

from django.contrib import admin 
from django.contrib.auth.admin import UserAdmin 
from django.contrib.auth.models import User 

class MyUserAdmin(UserAdmin): 
    list_filter = UserAdmin.list_filter + (GroupListFilter,) 

admin.site.unregister(User) 
admin.site.register(User, MyUserAdmin) 
संबंधित मुद्दे