2017-07-31 57 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 –