2017-07-31 31 views

回答

2

如果您只需要更改样式,则可以将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你want.See的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) 
+0

'yourapp/select_option.html'是放置模板的地方吗?我可以使用忍者吗?我只是想确定。 –

+0

所以只是为了澄清事情。我想要做的是列出选项,而不是下降。我可以使用for循环并在模板文件中创建一个选项列表吗? –

+0

@Ammar Yassir,你可以把你的模板放在任何django可以找到的地方,但yourapp/select_option.html是人们期望找到它的位置。 YOu可以使用jinja –

相关问题