В зависимости от того, что вы ищете, одним из решений является более детальное отображение формы в шаблоне.
Django docs укажите направления.
Ниже приведен один из способов достижения желаемого результата на основе документации:
В вашем forms.py вы можете сделать что-то вроде этого:
class TestForm(forms.Form):
choices=(('Value1', 'Choice1'),
('Value2', 'Choice2'),
('Value3', 'Choice3')
..
)
options = forms.ChoiceField(widget=forms.RadioSelect, choices=choices)
Доступ к вашей форме в views.py :
def my_view(request):
# your code here
return render(request, 'your_app/template.html', form=TestForm())
Затем в вашем шаблоне template.html file:
<form action='/place_url_here', method='POST'>
{% csrf_token %}
<div class="funkyradio">
{% for radio in form.options %}
<div class="funky-{{ radio.choice_label }}">
{{ radio.tag }}
<label for="{{ radio.id_for_label }}">{{ radio.choice_label }}</label>
</div>
{% endfor %}
</div>
</form>
Исходя из вышеизложенного, вы можете изменить стили для получения желаемых результатов.
Надеюсь, это поможет. Удачи.