क्या आवश्यक है कि django रूपों को तारों के साथ तारों के साथ क्षेत्र प्रदान करने का कोई चालाक तरीका है? या आवश्यक फ़ील्ड चिह्नित करने के लिए कुछ और चालाक प्रदान करने के लिए? यदि मैं पहले से ही फॉर्म में आवश्यक फ़ील्ड सेट करता हूं तो मैं इसे टेम्पलेट में फिर से करना नहीं चाहूंगा।जानकारी के साथ फॉर्म फ़ील्ड को प्रस्तुत करने के लिए कैसे करें
उत्तर
Django 1.2 के रूप में, यदि आपके फॉर्म में required_css_class
नामक एक विशेषता है, तो इसे आवश्यक फ़ील्ड के लिए BoundField.css_classes
में जोड़ा जाएगा। फिर आप वांछित रूप में फॉर्म के आवश्यक हिस्सों को स्टाइल करने के लिए सीएसएस का उपयोग कर सकते हैं। एक ठेठ उपयोग के मामले:
# views.py
class MyForm(django.forms.Form):
required_css_class = 'required'
…
...
/* CSS */
th.required { font-weight: bold; }
...
<!-- HTML -->
<tr>
<th class="{{form.name.css_classes}}">{{form.name.label_tag}}</th>
<td>{{form.name.errors}}{{form.name}}</td>
</tr>
आप का उपयोग करते हैं Form.as_table()
, Form.as_ul
, और Form.as_p
, वे स्वतः ऐसा करते हैं, <tr>
के वर्ग जोड़ने, <li>
, और <p>
क्रमशः।
मुझे मिले ऐसे उद्देश्यों का सबसे अच्छा तरीका एक HTML टेम्पलेट के माध्यम से फ़ॉर्म का आउटपुट प्रस्तुत करना है। यह कैसे करें here वर्णित है। भाग्य से, उदाहरण आवश्यक फ़ील्ड के बाद एक तारांकन डालता है जैसा आप चाहते हैं।
मेरी रूपों में से कोई भी प्रदान की गई है {{}} प्रपत्र, मैं स्पष्ट रूप से क्षेत्रों, कहते हैं। मुझे किसी फ़ील्ड या विजेट की विशेषता की तरह कुछ कम चाहिए। – gruszczy
यदि आप मॉडलफॉर्म के बारे में बात कर रहे हैं और मेटा क्लास की 'फील्ड' प्रॉपर्टी का उपयोग करके फ़ील्ड का सबसेट निर्धारित करने के लिए काम करेंगे, तो यह काम करेगा। यदि आपके पास गैर-मॉडल रूप हैं और छिपे हुए फ़ील्ड हैं, तो यह फिर से काम करेगा। मैं जल्दबाजी में हूं, क्षमा करें अगर मुझे कुछ याद आ रहा है? – shanyu
मेरे पास एक एकल प्रपत्र है जिसका उपयोग कई टेम्पलेट्स में किया जाता है और मैं आमतौर पर टेम्पलेट में आवश्यक सभी फ़ील्ड को कॉल करता हूं। यही कारण है कि मैं templated प्रतिपादन का उपयोग नहीं कर सकता। लेकिन ऐसा लगता है कि यह बेहतर होगा, अगर मैंने अभी मेटा के साथ कुछ उप-वर्ग बनाए हैं और फिर इस टेम्पलेटिंग का उपयोग करें। यह अच्छा विचार है, मुझे इसके बारे में सोचना है। – gruszczy
मैं अपने फ़ील्ड और त्रुटियों के साथ फॉर्म फ़ील्ड्स प्रस्तुत करने के लिए एक टेम्पलेट टैग का उपयोग करता हूं, साथ ही आवश्यक फ़ील्ड के लिए एक तारांकन और सीएसएस क्लास। Www.djangosnippets.org पर इसे करने के लिए कई स्निपेट उपलब्ध हैं
तो क्या मैं इस समय करता हूं, मेरा मतलब है कि मैं ऐसा करने के लिए फ़िल्टर का उपयोग करता हूं। फिर भी, यह बहुत शुष्क नहीं है। मैं इस सेटिंग को फॉर्म में रखना पसंद करूंगा (कुछ 'mark_required = True' रूप में)। – gruszczy
व्यक्तिगत मैंने इस तरह कुछ करने की कोशिश की, यानि डिफ़ॉल्ट टेम्पलेट टैग को ओवरराइड करना (यह आवश्यक सभी-पढ़ने वाले फ़ील्ड के लिए सभी व्यवस्थापक इंटरफेस में एक लाल तारांकन जोड़ता है। फिर मैंने अपने विचारों के लिए एक दूसरा टैग भी परिभाषित किया जो इनलाइन और ब्लॉक को मिलाता है लेबल नीचे कोड (कॉपी/कुछ संशोधनों के साथ Django स्रोत कोड के पेस्ट) देखें:।
settings.py में:
from django.forms.util import flatatt
from django.utils.html import conditional_escape
from django.utils.safestring import mark_safe
import django.forms.forms as django_forms
def custom_label_tag(self, contents=None, attrs=None):
"""
Wraps the given contents in a <label>, if the field has an ID attribute.
Does not HTML-escape the contents. If contents aren't given, uses the
field's HTML-escaped label.
If attrs are given, they're used as HTML attributes on the <label> tag.
"""
contents = contents or conditional_escape(self.label)
widget = self.field.widget
id_ = widget.attrs.get('id') or self.auto_id
if id_:
attrs = attrs and flatatt(attrs) or ''
if self.field.required:
label = unicode(contents)
label_suffix = ""
if label[-1] == ":":
label = label[:-1]
label_suffix += ":"
contents = u'<label for="%s"%s>%s<span style="color:red;">*</span>%s</label>' % (widget.id_for_label(id_), attrs, label, label_suffix)
else:
contents = u'<label for="%s"%s>%s</label>' % (widget.id_for_label(id_), attrs, unicode(contents))
return mark_safe(contents)
def custom_inline_label_tag(self, contents=None, attrs=None):
if attrs:
if "class" in attrs.keys():
attrs["class"] += " inline"
else:
attrs["class"] = "inline"
else:
attrs = {"class": "inline"}
return self.label_tag(contents, attrs)
django_forms.BoundField.label_tag = custom_label_tag # override django method
django_forms.BoundField.inline_label_tag = custom_inline_label_tag
मेरे टेम्पलेट में
<p>{{ form.fieldname.errors}}{{ form.fieldname.inline_label_tag }}{{form.fieldname}}</p>
OR
<p>{{ form.fieldname.errors}}{{ form.fieldname.label_tag }}{{form.fieldname}}</p>
तुम भी एक field.field.required संपत्ति का उपयोग कर सकते हैं: क्योंकि मैं आमतौर पर प्रपत्र के क्षेत्रों में से केवल सबसेट प्रदर्शित
{% for field in form %}
{{field.label}} {% if field.field.required %} * {% endif %}
{{field}}
{{field.errors}}
{% endfor %}
- 1. टेम्पलेट में django फॉर्म फ़ील्ड को प्रस्तुत करने के लिए कैसे करें
- 2. बटन पर फॉर्म फ़ील्ड को साफ़ करने के लिए जावास्क्रिप्ट
- 3. jquery इनपुट फ़ील्ड को खाली करने के लिए कैसे करें
- 4. रीजिक्स ईमेल फॉर्म "टू" फ़ील्ड को पार्स करने के लिए
- 5. जेएस फॉर्म रेल के साथ त्रुटि संदेश प्रस्तुत करें
- 6. कोणीय जेएस: प्रस्तुत करने के बाद कॉलबैक (प्रस्तुत करने के बाद डोम के साथ काम करें)
- 7. संस्करण जानकारी को सॉर्ट करने के लिए कैसे करें
- 8. jQuery मान्य के साथ अमान्य फ़ील्ड को कैसे फ़ोकस करें?
- 9. इनलाइन संपादन के लिए तालिका के भीतर फॉर्म फ़ील्ड को संरेखित कैसे करें?
- 10. नई जानकारी के साथ डेटाबेस को अद्यतन करने के लिए कैसे करें
- 11. एचटीएमएल: एक फॉर्म को संरेखित करने के लिए कैसे करें
- 12. फ़ाइल फ़ील्ड को फ़ाइल करने के लिए कैसे निर्यात करें?
- 13. Mongoid array फ़ील्ड बनाने और अपडेट करने के लिए फॉर्म
- 14. फॉर्म फ़ील्ड में बदलाव करने के लिए jquery का उपयोग
- 15. रेल सत्यापन फ़ील्ड पर फ़ील्ड को हाइलाइट करने के लिए कैसे करें
- 16. फ़्लोट के साथ इस बार चार्ट को कैसे प्रस्तुत करें
- 17. एक फॉर्म फ़ील्ड के लिए जेनरेट क्लाइंटिड प्राप्त करें
- 18. प्रमाणीकरण पर जानकारी आरंभ करने के लिए कैसे करें
- 19. Django व्यवस्थापक: रीडोनली फ़ील्ड को प्रारूपित करने के लिए कैसे?
- 20. Django - एक ही फॉर्म फ़ील्ड के <label> प्रस्तुत करें
- 21. Drupal 7 कस्टम फ़ील्ड को कैसे प्रस्तुत करें
- 22. अनुलग्नक के साथ फॉर्म
- 23. फॉर्म फ़ील्ड और डेटाबेस टेबल फ़ील्ड के लिए समान नाम?
- 24. jQuery, बटन के साथ फॉर्म सबमिट करें
- 25. सिम्फनी 2 - फॉर्म फ़ील्ड को पुनर्व्यवस्थित करें
- 26. jQuery - फॉर्म फ़ील्ड अक्षम करें
- 27. मुख्य धागे के बाहर MKMapView प्रस्तुत करने के लिए कैसे?
- 28. तीन.जेएस में विभिन्न कैमरों के साथ एक ही दृश्य को प्रस्तुत करने के लिए कैसे?
- 29. पायथन के xml.dom.minidom के साथ एक डॉक्टरेट कैसे प्रस्तुत करें?
- 30. कोको: छवि को देखने के लिए कैसे प्रस्तुत करें?
नोट करें कि आप इस विधि का उपयोग करके तारांकन जोड़ने के लिए सीएसएस सामग्री निर्देश का उपयोग कर सकते हैं: 'th.required: {content: '*'} के बाद' –