2011-07-05 13 views
10

मैं Django व्यवस्थापक कुछ क्षेत्रों के इनपुट के लिए कस्टम फॉर्म फ़ील्ड का उपयोग करना चाहता हूं।Django व्यवस्थापक में मॉडल फ़ील्ड के लिए कस्टम फॉर्म फ़ील्ड्स का उपयोग कैसे करें?

अब तक मैंने एक कस्टम मॉडल फ़ील्ड बनाया है जिसमें फॉर्म फ़ील्ड है जो बहुत अच्छा काम करता है लेकिन यह एक अनावश्यक मॉडल फ़ील्ड पेश करता है जो कोई लाभ नहीं जोड़ता है।

मुझे लगता है कि इसे कस्टम व्यवस्थापक फॉर्म का उपयोग करके किसी भी तरह किया जा सकता है (http://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin देखें) लेकिन मुझे यह पता नहीं लगा कि यह कैसे किया जाए।

+0

आप उस लिंक किए गए उदाहरण के बारे में क्या नहीं समझते? पूरी तरह से स्पष्ट लगता है: कस्टम फ़ील्ड के साथ अपना फॉर्म परिभाषित करें, और इसे व्यवस्थापक वर्ग के रूप में सेट करें। समस्या क्या है? –

उत्तर

8
class MyModelForm(forms.ModelForm): 
    my_field = MyCustomFormField() 

    class Meta: 
     model = MyModel 

class MyModelAdmin(admin.ModelAdmin): 
    form = MyModelForm 
+0

धन्यवाद! उसने जादू की तरह काम किया। मुझे नहीं पता था कि आप फॉर्म फ़ील्ड को ओवरराइट कर सकते हैं। – Semmel

+0

दरअसल, यह विधि ** काम नहीं करती ** - केवल नियमित 'फॉर्म' पर। यदि कोई 'मॉडलफॉर्म' पर फ़ील्ड ओवरराइट करना चाहता है, तो इसे मेटा क्लास में किया जाना है। Https://docs.djangoproject.com/en/1.5/topics/forms/modelforms/#overriding-the-default-fields – jnns

+0

@jnns देखें: अजीब, मॉडलफॉर्म भाग को आपके द्वारा लिंक किए गए Django दस्तावेज़ पृष्ठ से लगभग क्रियात्मक रूप से लिया जाता है । – che

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