Пользовательский виджет в поле выбора Django
Я передаю форму в шаблон. Мне нужно, чтобы из этого шаблона в другой шаблон была передана опция, которую выбрал пользователь. В данном случае один из вариантов оплаты. Я могу сделать это с помощью ChoiceField, select built-in widget=RadioSelect() и так далее. Но ChoiceField должен выглядеть следующим образом:
Когда вы выбираете опцию, она выделяется оранжевым квадратом.
То есть у меня вообще нет текста, а мне нужно передать его обработчику в views.py. Я использую Django 4.0. Как мне это сделать?
class CheckoutForm(forms.Form):
payment_method = forms.ChoiceField(
choices=CHOICES,
widget=...
)
.checkout__payment-methods {
display: flex;
gap: 20px;
height: 80px;
margin-top: 25px;
}
.checkout__payment-method {
border-radius: var(--border-radius-primary);
height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
transition: filter .2s ease-in-out;
cursor: pointer;
}
.checkout__payment-method:hover {
filter: brightness(80%);
}
.checkout__payment-method--yookassa {
background-color: #F5F5F5;
}
.checkout__payment-method--freekassa {
background-color: #333342;
}
Я попробовал использовать mark_safe для вставки кода во второй элемент CHOICES, а затем в шаблоне с помощью цикла вывести payment_method, но это не сработало так, как я ожидал