2012-09-02 11 views

उत्तर

23

मैं आप इस अपने आप ही हो करना चाहते ग्रहण करने के लिए जा रहा हूँ, तो यहाँ कुछ अलग अलग तरीकों में से एक है:

{% for field in form %} 
    <label for="{{ field.auto_id }}">{{ field.label_tag }} 
    {% if field.field.required %} 
     <span class="required">*</span> 
    {% endif %} 
    </label> 
{% endfor %} 

तो फिर तुम तारांकन शैली सीएसएस का उपयोग कर सकते हैं।

या, आप तारांकन का उपयोग कर सीएसएस के बजाय अगर आप चाहते हैं जोड़ सकते हैं:

<style type="text/css"> 
    span.required:after { content: '*'; } 
</style> 
{% for field in form %} 
    <label for="{{ field.auto_id }}"> 
    {% if field.field.required %} 
     <span class="required">{{ field.label_tag }}</span> 
    {% else %} 
     {{ field.label_tag }} 
    {% endif %} 
    </label> 
{% endfor %} 

यह एक शायद एक बेहतर विकल्प है यदि आप के रूप में अच्छी आवश्यक फ़ील्ड के साथ अन्य बातों करना चाहते हैं।

हालांकि, अगर आप व्यक्तिगत रूप से क्षेत्रों तक पहुँचने नहीं किया जाएगा (जैसे का उपयोग कर के रूप में {{form.as_p}}), तो आप एक संपत्ति अपने ModelForm को जोड़ सकते हैं:

class FooForm(forms.ModelForm): 
    required_css_class = 'required' 

कि सभी क्षेत्रों को परिभाषित करेंगे जो 'आवश्यक' वर्ग होने के रूप में आवश्यक हैं (और इस प्रकार, आप ऊपर वर्णित सीएसएस कोड का उपयोग तारांकन (या जो भी आप इसके साथ करना चाहते हैं) जोड़ने के लिए उपरोक्त वर्णित सीएसएस कोड का उपयोग कर सकते हैं।

+1

{{form.as_p}} मेरे टेम्पलेट और मैं में लिखने के तरीके में आवश्यक फ़ील्ड तक नहीं पहुंच सकते हैं क्या मॉडलफॉर्म में कुछ फ़ील्ड के बाद एचटीएमएल ब्लॉक को कस्टमाइज़ करने का कोई तरीका है? – Kozet

+0

@ कोज़ेट: {{form.as_p}} ठीक है अगर आप उस HTML को खुश करते हैं जो इसे उत्पन्न करता है लेकिन यदि आप इसे संशोधित करना चाहते हैं तो आपको प्रत्येक फ़ील्ड के साथ अपना स्वयं का फॉर्म HTML लिखना होगा। –

+0

@ कोज़ेट: आपकी स्थिति के लिए मेरा उत्तर संपादित किया। – JoeLinux

0

आप jQuery का उपयोग भी कर सकते हैं लेबल का चयन करने या इसमें संलग्न करने के लिए।

उदाहरण के लिए आप आप आवश्यक फ़ील्ड के लिए स्टार जोड़ना चाहते हैं तो फिर इस बूटस्ट्रैप रूप

<form class="form-horizontal"> 
    <div class="form-group"> 
    <label for="inputEmail3" class="col-sm-2 control-label">Email</label> 
    <div class="col-sm-10"> 
     <input type="email" class="form-control" id="inputEmail3" required="required"> 
    </div> 
    </div> 
    <div class="form-group"> 
    <label for="inputPassword3" class="col-sm-2 control-label">Password</label> 
    <div class="col-sm-10"> 
     <input type="password" class="form-control" id="inputPassword3"> 
    </div> 
    </div> 
</form> 

है।

$('input,textarea,select').filter('[required]').parent().parent().find("label").append("*"); 

इसके अलावा, आप आवश्यक फ़ील्ड के लिए एक वर्ग निर्दिष्ट करने के लिए चाहते हो सकता है तो लेबल आप उन्हें बोल्ड मैं उपयोग कर रहा हूँ बनाने या कुछ और कर सकते हैं

$('input,textarea,select').filter('[required]:visible').parent().parent().find("label").addClass("required_label"); 
संबंधित मुद्दे