मैं django व्यवस्थापक को बेहतर समझने की कोशिश कर रहा हूं और साथ ही, मैं वर्तमान उपयोगकर्ता व्यवस्थापक में एक और फ़ील्ड जोड़ने की कोशिश कर रहा हूं। models.py में मैंdjango व्यवस्थापक के लिए, मैं उपयोगकर्ता मॉडल में कोई फ़ील्ड कैसे जोड़ूं और इसे व्यवस्थापक में संपादन योग्य कर सकता हूं?
User.add_to_class('new_field', models.BooleanField(default=False))
किया है और admin.py में मैं निम्नलिखित मिल गया है
class AdjUserAdmin(UserAdmin):
list_display = UserAdmin.list_display + ('new_field',)
list_filter = UserAdmin.list_filter + ('new_field',)
fieldsets = UserAdmin.fieldsets
fieldsets[1][1]['fields'] = ('first_name','last_name','email','new_field')
(fieldsets मूल रूप से सिर्फ Django/योगदान/प्रमाणन/admin.py से नकल के साथ) समस्या है, जब मैं यह कर मैं त्रुटि मिलती है:
AdjUserAdmin.fieldsets[4][1]['fields']' refers to field 'new_field' that is missing from the form.
मैं UserChangeForm को देखा है, लेकिन ऐसा लगता है कि यह एक है मॉडल के रूप में उपयोगकर्ता में पहले से ही खींच रहा है। मुझे यकीन नहीं है कि new_field
फ़ॉर्म से क्यों गुम है।
धन्यवाद
इस किया जा रहा बदबूदार कोड के संबंध में
मैं जानता हूँ कि यह एक बदबूदार बंदर पैचिंग तरीका यह करने के बारे में जाने के लिए है, लेकिन उपवर्गीकरण मुझे these कारणों के लिए मुख्य रूप से जारी करता है देता है .. अगर मैं इसे ऊपर बताए तरीके से काम करने के लिए मिल सकता है, मैं खुश रहूंगा .. और शायद सुगंधित।
सुझाया गया तरीका
मैं एक उपयोगकर्ता प्रोफ़ाइल बनाने की सिफारिश की जिस तरह के बारे में पता कर रहा हूँ के संबंध में, सिर्फ इतना है कि विशेष परिस्थितियों में, मैं योग्यता एक पूरी नई तालिका बनाने में नहीं दिख रहा है और जब मैं स्टोर करना चाहता हूं तो डेटाबेस में अतिरिक्त कॉल करना is_private
या कुछ ऐसे जैसे जानकारी का एक अतिरिक्त हिस्सा है। यदि मैं बहुत अधिक जानकारी संग्रहीत कर रहा हूं, तो मैं सहमत हूं कि उपयोगकर्ता प्रोफ़ाइल सेट करना बेहतर है।
हम्म .. पता नहीं क्यों मैं फ्लॉप वें list_display = UserAdmin.list_display + ('new_field',) का उपयोग करने के बाद उसमें स्याही .. धन्यवाद! – Silfheed
जब मैं का उपयोग करें: UserAdmin.list_display + = ('उपनाम',) UserAdmin.list_filter + = ('उपनाम',) UserAdmin.fieldsets + = ('उपनाम',) <-----> वहाँ कुछ गलत है, की तरह यह:: (admin.E008) 'फ़ील्ड्स [4]' का मान एक सूची या टुपल होना चाहिए। <-----> और मैं चांग के लिए: UserAdmin.list_display + = ('उपनाम',) UserAdmin.list_filter + = ('उपनाम',) UserAdmin.fieldsets + = (('उपनाम', { 'क्षेत्रों': ('उपनाम',)}), <-----> यह समस्या समाप्त हो गई है। –
bovenson