2017-07-31 1 views

答えて

2

スタイルを変更するだけであれば、cssクラスを属性として渡すことができます。あなたが細かいカスタマイズが必要な場合は、デフォルトのウィジェットのテンプレートをオーバーライドして、あなたがdocs hereをwant.SeeどんなHTML置くことができますDocs

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

enter image description here

enter image description 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は人々がそれを見つけることを期待している場所です。あなたはjinja –

関連する問題