在django中将ChoiceField列为Button

时间:2017-07-31 19:47:49

标签: python django web

我有没有办法让django中的ChoiceFields从下拉列表中更改为类似按钮的方式,每个都有不同的选择?

1 个答案:

答案 0 :(得分:3)

如果您只需要更改样式,则可以将css类作为属性传递。请参阅Docs

select_media = forms.ChoiceField(widget=forms.Select(
    attrs={'class': 'btn btn-primary'}),
    choices=MEDIA_CHOICES)

enter image description here

enter image description here

如果您需要更精细的自定义,您可以覆盖默认的窗口小部件模板并放置您想要的任何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)