2010-05-23 18 views
33

मैं एक 'ऑर्डर' मॉडल है:मैं Django ModelForm में फ़ील्ड कैसे ऑर्डर कर सकता हूं?

class Order(models.Model): 
    date_time=models.DateTimeField() 
    # other stuff 

और मैं एक फार्म प्रस्तुत करना Django ModelForm वर्ग का उपयोग कर रहा है, लेकिन मैं तारीख को प्रदर्शित करना चाहते हैं और समय अलग विजेट। मैं इस के साथ आया है:

class Form(forms.ModelForm): 
    class Meta: 
     model = Order 
     exclude = ('date_time',) 
     date = forms.DateField() 
     time = forms.TimeField() 

समस्या यह है कि मैं 'अन्य सामान'

+0

में संभावित डुप्लिकेट [Django कैसे फॉर्म फ़ील्ड प्रस्तुत करने के आदेश को जानता है?] (Http://stackoverflow.com/questions/350799/how-does-django-now-the-order-to-render -फॉर्म-फ़ील्ड) – DrTyrsa

उत्तर

58

आप उपयोग कर सकते हैं क्षेत्रों = [..., 'तारीख', 'के बीच कहीं न कहीं इन क्षेत्रों रखना चाहते हैं समय ', ...] आपके रूप के मेटा वर्ग पर। देखें: http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#changing-the-order-of-fields

+8

यह सही उत्तर है, जबकि मैं बस उन फ़ील्ड का उल्लेख करना चाहता हूं = [...] में उपयोगकर्ता परिभाषित फ़ील्ड शामिल हो सकते हैं। – dspjm

+0

बिल्कुल, और जब आप '__init__' कॉलिंग 'self.fields.keyOrder = [<मॉडल और उपयोगकर्ता परिभाषित फ़ील्ड> ...]' को ओवरराइड करने का प्रयास करते हैं, तो आपको समस्याएं (अपवाद इत्यादि) मिलेंगी। –

-3

बस अपने models.py में कक्षा विशेषताओं के क्रम को बदलें। 1.9

+3

यह उस प्रश्न का उत्तर नहीं देता जो अतिरिक्त फ़ील्ड के बारे में है जो मॉडल का हिस्सा नहीं हैं। –

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