2010-03-24 12 views
5

मैं समूह के लिए व्यवस्थापक को बदलना चाहता हूं, इसलिए यह प्रदर्शित होगा कि किसी निश्चित समूह में कितने उपयोगकर्ता हैं। मैं इसे सभी समूहों को दिखाने के दृश्य में प्रदर्शित करना चाहता हूं, इससे पहले कि आप कुछ समूह के लिए व्यवस्थापक दर्ज करें। क्या यह संभव है? मैं दोनों के बारे में बात कर रहा हूं कि समूह के लिए व्यवस्थापक कैसे बदलें और list_display पर फ़ंक्शन कैसे जोड़ें।django: समूह उपयोगकर्ताओं को प्रदर्शित करने में व्यवस्थापक

उत्तर

8

सबसे पहले आपको से GroupAdmin आयात और उपclass करने की आवश्यकता होगी। अपने उप-वर्ग में, user_count विधि परिभाषित करें। फिर, व्यवस्थापक से मौजूदा समूह मॉडल को अनधिकृत करें, और नया पंजीकरण करें।

from django.contrib.auth.admin import GroupAdmin 
from django.contrib.auth.models import Group 

class GroupAdminWithCount(GroupAdmin): 
    def user_count(self, obj): 
     return obj.user_set.count() 

    list_display = GroupAdmin.list_display + ('user_count',) 

admin.site.unregister(Group) 
admin.site.register(Group, GroupAdminWithCount) 
+0

मजेदार, मेरे पास पहले से ही अपना समूह एडमिन है, बस भूल गया है कि मैं उस पर कुछ कर रहा था (आसान उपयोगकर्ता जोड़, क्योंकि आप डिफ़ॉल्ट समूह व्यवस्थापक से उपयोगकर्ताओं को नहीं जोड़ सकते हैं)। यह बहुत समय पहले था, कि मैं बस इसके बारे में भूल गया .. आपकी मदद के लिए बहुत बहुत धन्यवाद :-) – gruszczy

+0

ठीक है, एक फ़ील्ड दिखाई देता है, लेकिन यह हमेशा नहीं होता है और user_count फ़ंक्शन नहीं कहा जाता है। कोई विचार, यह क्यों हो रहा है? – gruszczy

+0

ओह, यह self.user_set.count() के बजाय obj.user_set.count() होना चाहिए। अब यह काम करता है :-) – gruszczy

संबंधित मुद्दे