Django- विजेट-ट्विक्स का उपयोग करें , यह उपयोग करना आसान है और बहुत अच्छी तरह से काम करता है।
अन्यथा यह कस्टम टेम्पलेट फ़िल्टर का उपयोग करके किया जा सकता है।
आपको अपना फॉर्म इस प्रकार प्रस्तुत करने पर विचार करना:
<form action="/contact/" method="post">
{{ form.non_field_errors }}
<div class="fieldWrapper">
{{ form.subject.errors }}
<label for="id_subject">Email subject:</label>
{{ form.subject }}
</div>
</form>
form.subject का एक उदाहरण है BoundField जो as_widget विधि।
आप "my_app / templatetags / myfilters.py" में एक कस्टम फ़िल्टर "addcss" बना सकते हैं
from django import template
register = template.Library()
@register.filter(name='addcss')
def addcss(value, arg):
css_classes = value.field.widget.attrs.get('class', '').split(' ')
if css_classes and arg not in css_classes:
css_classes = '%s %s' % (css_classes, arg)
return value.as_widget(attrs={'class': css_classes})
और फिर अपना फ़िल्टर लागू करें:
{% load myfilters %}
<form action="/contact/" method="post">
{{ form.non_field_errors }}
<div class="fieldWrapper">
{{ form.subject.errors }}
<label for="id_subject">Email subject:</label>
{{ form.subject|addcss:'MyClass' }}
</div>
</form>
form.subjects तब "MyClass" सीएसएस वर्ग के साथ प्रदान किया जाएगा।
उममीद है कि इससे मदद मिलेगी।
EDIT 1
EDIT 2
- भिड की टिप्पणी के अनुसार फ़िल्टर अपडेट करें