Если вы хотите изменить только виджет, вам лучше указать это в классе Meta
, передав словарь атрибуту widgets
[Django -doc] :
class MyForm(forms.ModelForm):
class Meta:
model = SPA
fields = [ 'name', 'category', 'price' ]
<b>widgets</b> = {
<b>'category'</b>: forms.RadioSelect
}
Таким образом, конструкция формы модели останется нетронутой, и, таким образом, будут определены варианты из модели, et c. Да, вы можете указать варианты вручную, но если позже вы, например, измените поле, то вам также придется изменить поле формы. Указав виджет, вы позволяете Django автоматизировать все остальное.
Если вы все еще хотите определить форму, вы можете получить выбор из модели:
class MyForm(forms.ModelForm):
category = forms.ChoiceField(<b>choices=SPA.category.choices</b>, widget=forms.RadioSelect())
class Meta:
model = SPA
fields = [ 'name', 'category', 'price' ]