2013-06-18 4 views
5

लड़के, यह लगता है मैं यहाँ सब कुछ कोशिश की है, और मैं सिर्फ इस फार्म ठीक से प्रस्तुत करने के लिए नहीं मिल सकता है (जैसे क्षेत्रों के सबसेट के साथ)। यहाँ प्रासंगिक आइटम है (अतिरिक्त आइटम को हटाने का):Django क्लास में छोड़कर फील्ड्स आधार पर विचार काम नहीं

models.py:

class Response(models.Model): 
    public = models.BooleanField(default=False) 
    question = models.CharField(max_length=255, default='', blank=True) 

class ResponseForm(ModelForm): 
    class Meta: 
     model = Response 
     fields = ['question'] 

views.py:

class ResponseCreate(CreateView): 
    model = Response 
    fields = ['question'] 

response_form.html:

<form action="" method="post">{% csrf_token %} 
    {{ form.as_p }} 
    <input type="submit" value="Create" /> 
</form> 

मैंने दस्तावेज़ों की हर बिट पढ़ा है, और वे exclude का उपयोग कर, excludes, field,का सुझाव टपल, या सूची है, और कोई बात नहीं के क्रमपरिवर्तन मेंक्या "सार्वजनिक" क्षेत्र हर बार दिखाने के लिए लगता है! विचार?

आपकी मदद के लिए धन्यवाद!

+0

यदि आप अपने फॉर्म में अल्पविराम जोड़ते हैं, तो 'फ़ील्ड = [' प्रश्न ',]', क्या यह चीजों को बदलता है? –

+0

@ScottWoodall यह केवल टपल प्रकार के लिए एक फर्क होता है, की सूची नहीं – karthikr

उत्तर

9

ऐसा लगता है कि आप अपने दृश्य पर form_class निर्दिष्ट करना होगा:

class ResponseCreate(CreateView): 
    model = Response 
    form_class = ResponseForm 
+0

वाह, यह आसान था। डॉक्स वास्तव में उस पर छोड़ दें। धन्यवाद! – aronchick

0

बस मुझे लगता है कि तुम नहीं उल्लेख करना चाहते हैं वास्तव में एक ModelForm अलग से बनाया जाना चाहिए।

जेनेरिक विचारों वास्तव में जब मॉडल के साथ काम कर चमक रहा है। ये सामान्य विचारों स्वचालित रूप से, aModelForm पैदा करेगा जब तक वे बाहर जो मॉडल वर्ग

उपयोग करने के लिए आप सिर्फ इस का उपयोग कर सकते काम कर सकते हैं।

class Response(models.Model): 
    public = models.BooleanField(default=False) 
    question = models.CharField(max_length=255, default='', blank=True) 

class ResponseCreate(CreateView): 
    model = Response 
    fields = ['question'] 
संबंधित मुद्दे