I\'ve created a custom template for rendering form fields:
<
-
Use a custom template filter!
In yourapp/templatetags/my_custom_tags.py:
from django import template
from django.forms import CheckboxInput
register = template.Library()
@register.filter(name='is_checkbox')
def is_checkbox(field):
return field.field.widget.__class__.__name__ == CheckboxInput().__class__.__name__
In your template:
{% load my_custom_tags %}
{% if field|is_checkbox %}
do something
{% endif %}
Side note on implementation: when I don't instantiate a CheckboxInput, the class name is MediaDefiningClass.
>>> form django.forms import CheckboxInput
KeyboardInterrupt
>>> CheckboxInput.__class__.__name__
'MediaDefiningClass'
- 热议问题