ใช้django-widget-tweaksมันใช้งานง่ายและใช้งานได้ดี
มิฉะนั้นคุณสามารถทำได้โดยใช้ตัวกรองแม่แบบกำหนดเอง
พิจารณาว่าคุณสร้างแบบฟอร์มของคุณด้วยวิธีนี้:
<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
คุณสามารถสร้างตัวกรองที่กำหนดเอง "addcss" ใน "my_app / templatetags / myfilters.py"
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" css
หวังว่าความช่วยเหลือนี้
แก้ไข 1
แก้ไข 2
- อัปเดตตัวกรองตามความคิดเห็นของBhyd