私は私のフォームの1つでモデル選択フィールドを使用しています。モデルの属性の値に基づいて各オプションにCSSクラスを追加したいと思います。Django - ModelChoiceFieldの個々の行にクラスを追加しますか?
これを行う簡単な方法はありますか?
アドバイスありがとうございます。
ありがとうございました。
私は私のフォームの1つでモデル選択フィールドを使用しています。モデルの属性の値に基づいて各オプションにCSSクラスを追加したいと思います。Django - ModelChoiceFieldの個々の行にクラスを追加しますか?
これを行う簡単な方法はありますか?
アドバイスありがとうございます。
ありがとうございました。
つのオプション:
あなたは繰り返し処理{{form.field_name.choices}}とクラスを生成し、テンプレートの中で自分自身を選択するレンダリングする必要があります。
django.forms.widgets.Selectを拡張し、render_option()メソッドをオーバーライドするカスタムウィジェットを作成します。たとえば、実装方法については、render_option() in django's sourceを参照してください。フォームのウィジェットをフィールドのウィジェットとして使用します。
djangoのスニペットでは、同様のもの(その場合は無効になっているオプション)の別の例を見ることができます:Allow disabling options in a select widget。
IMO第2のオプションはよりクリーンです:再利用可能で、テンプレートを使いこなす必要はありません。