2009-03-04 13 views
10

मैं कुछ तृतीय पक्ष कोड से मॉडल क्लास का उत्तराधिकारी बनाना चाहता हूं। मैं कुछ फ़ील्ड का उपयोग नहीं करूँगा लेकिन चाहता हूं कि मेरा ग्राहक व्यवस्थापक में मॉडल को संपादित करने में सक्षम हो। क्या उन्हें व्यवस्थापक से छिपाने का सबसे अच्छा शर्त है या क्या मैं वास्तव में उन्हें पहले स्थान पर बनाए रखने से रोक सकता हूं?डीजेगो मॉडल विरासत। खेतों को छिपाना या निकालना

अतिरिक्त - यदि अवांछित फ़ील्ड में से एक की आवश्यकता है तो मैं क्या कर सकता हूं? मेरा पहला विचार सहेजने की विधि को ओवरराइड करना है और केवल एक डिफ़ॉल्ट मान डालना है।

उत्तर

4

यदि आप मॉडल को विरासत में ले रहे हैं तो शायद किसी मौजूदा फ़ील्ड को छिपाने या अक्षम करने का प्रयास करना बुद्धिमान नहीं है। सबसे अच्छी बात यह है कि आप शायद वही कर सकते हैं जो आपने सुझाया था: save() ओवरराइड करें और वहां अपने तर्क को संभालें।

4

उत्तराधिकारी के बजाय, अनुकूलित फॉर्म का उपयोग करने पर विचार करें।

  1. आप मॉडल में अभी भी प्रदर्शन से फ़ील्ड को खत्म कर सकते हैं।

  2. आप फॉर्म की clean() विधि में डिफ़ॉल्ट मान मान्य और प्रदान कर सकते हैं।

http://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin

5

आप फ़ील्ड व्यवस्थापक में संपादित किए जाने योग्य नियंत्रित कर सकते हैं।

Django डॉक्स से:

"आप लेखक मॉडल है कि केवल नाम और शीर्षक फ़ील्ड शामिल हैं के लिए एक फार्म चाहते हैं, आप फ़ील्ड को निर्दिष्ट या इस तरह बहिष्कृत कर देगा:

class AuthorAdmin(admin.ModelAdmin): 
    fields = ('name', 'title') 

class AuthorAdmin(admin.ModelAdmin): 
    exclude = ('birth_date',)" 

http://docs.djangoproject.com/en/dev/ref/contrib/admin/

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