2012-05-31 13 views
6

में एक्सेस फॉर्म फ़ील्ड विशेषताएँ मैं django के साथ कुछ कस्टम फॉर्म कर रहा हूं लेकिन मुझे यह नहीं पता कि एक विशिष्ट फॉर्म फ़ील्ड form.py के माध्यम से संलग्न है।टेम्पलेटेड Django

def putErrorInTitle (cls): 
init = cls.__init__ 

def __init__ (self, *args, **kwargs): 
    init(self, *args, **kwargs) 
    if self.errors: 
     for field_error in self.errors: 
      self.fields[field_error].widget.attrs['title'] = self.errors[field_error][0] 
      self.fields[field_error].widget.attrs['class'] = "help_text error_field" 

cls.__init__ = __init__ 
return cls 

इस तरह मैंने इस क्षेत्र में attibutes संलग्न किया।

<dl class="clearfix two"> 
<dd> 
    <label for="id_diagnosis">Diagnostico:</label> 
    <select class="{{form.id_diagnosis.class}}" id="id_equipment_activity-{{ forloop.counter0 }}-id_diagnosis" name="equipment_activity-{{ forloop.counter0 }}-id_diagnosis"> 
    {% for x,y in form.fields.id_diagnosis.choices %} 
    <option value="{{ x }}" {% ifequal form.id_diagnosis.data|floatformat x|floatformat %}selected="selected"{% endifequal %}>{{ y }}</option> 
    {% endfor %} 
    <option value="1000" {% ifequal form.id_diagnosis.data|floatformat '1000'|floatformat %}selected="selected"{% endifequal %}>Otro</option> 
    </select> 
</dd> 
<dd class="vertical_center" id="optional_diagnosis"><label for="optional_diagnosis">Diagnostico opcional:</label>{{ form.optional_diagnosis }}</dd> 
</dl> 

मैं उसके गुण का उपयोग करने की कोशिश कर दिया गया है:

class="{{form.id_diagnosis.class}}", class="{{form.id_diagnosis.widget.class}}" 

और मैं के बारे में क्या पहुंचा जा सकता है और क्या नहीं स्पष्ट दस्तावेज़ प्राप्त करने के नहीं है। वास्तव में मैं django "दोस्ताना" की तुलना में पुराने फैशन दस्तावेज की बजाय एक

उत्तर

9

ऐसा लगता है कि आप बस प्रत्येक फ़ील्ड के लिए फॉर्म त्रुटियां प्रदर्शित करना चाहते हैं। फ़ॉर्म को साफ़ या साफ़ करने के बाद, फ़ील्ड में त्रुटि संदेश होना चाहिए। ताकि तुम इतनी तरह टेम्पलेट में उन्हें प्रदर्शित कर सकते हैं:

<form action='.' method='post'> 
    ... 
    <div class='a-field'> 
     {{ form.field_1.errors|join:", " }} 
     {{ form.field_1.label_tag }} 
     {{ form.field_1 }} 
    </div> 
    ... 
</form> 

तुम सच में प्रपत्र क्षेत्र का श्रेय तो आप की तरह कुछ कोशिश कर सकते हैं प्रदर्शित करना चाहते हैं लेकिन हैं:

{{ form.field_1.field.widget.attrs.maxlength }} 
+0

धन्यवाद:

प्रपत्र के init समारोह में स्थापना:

self.fields['some_field'].widget.attrs['readonly'] = True 

... और एक टेम्पलेट में उस तक पहुंचने में। –

6

अन्य मामलों में यह कर सकते हैं फ़ील्ड विशेषताओं को सेट करने और प्राप्त करने के लिए उपयोगी हो सकता है। वह .errors तरीका अपनाते हैं सुझाव दे, लेकिन अभी भी सवाल का जवाब देने के लिए

{{ form.some_field.field.widget.attrs.readonly }} 
+0

बहुत उपयोगी !!! –

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