我有没有办法让django中的ChoiceFields从下拉列表中更改为类似按钮的方式,每个都有不同的选择?
答案 0 :(得分:3)
如果您只需要更改样式,则可以将css类作为属性传递。请参阅Docs
select_media = forms.ChoiceField(widget=forms.Select(
attrs={'class': 'btn btn-primary'}),
choices=MEDIA_CHOICES)
如果您需要更精细的自定义,您可以覆盖默认的窗口小部件模板并放置您想要的任何html。请参阅docs here。下面的代码是Django 1.11
class CustomSelectWidget(forms.Select):
template_name: 'yourapp/select.html'
option_template_name = 'yourapp/select_option.html'
class CustomForm(forms.Form):
MEDIA_CHOICES = (
(1, 'DVD'),
(2, 'VCD'),
(3,'USB')
)
select_media = forms.ChoiceField(widget=CustomSelectWidget(
attrs={'class': 'btn btn-primary'}),
choices=MEDIA_CHOICES)