Вы можете использовать django-betterforms
, который имеет FieldSets , в который вы можете сгруппировать свои поля.
В своем метаклассе на форме вы указываете FieldSetsсгруппированных полей:
class Meta:
fieldsets = (
('info', {'fields': ('username', 'email')}),
('location', {'fields': ('address', ('city', 'state', 'zip'))}),
('password', {'password1', 'password2'}),
)
И в шаблоне вы можете перебирать FieldSets
{% for fieldset in form %}
<div class="ibox-content">
{% for field in fieldset %}
...
{% endfor %}
</div>
{% endfor %}
Вы можете увидеть больше предлагаемой реализации шаблона здесь .
Другие решения: этот ответ или django-form-utils , что является лучшей документированной версией моего ответа.Последнее, однако, кажется, сегодня не поддерживается, но может работать в зависимости от вашей версии Django.