Уже поздно отвечать, но я реализовал нечто похожее на то, что делается в админке Джанго.
Сначала я добавил новый атрибут is_checkbox
в класс Field:
# forms.py
from django import forms
from django.forms.fields import Field
setattr(Field, 'is_checkbox', lambda self: isinstance(self.widget, forms.CheckboxInput ))
Затем я могу легко обнаружить виджет CheckboxInput
в шаблоне. Вот пример рендеринга флажков слева и других виджетов справа:
{% if field.field.is_checkbox %}
{{ field }} {{ field.label_tag }}
{% else %}
{{ field.label }} {{ field }}
{% endif %}