フォームのフィールドを反復していますが、特定のフィールドでは少し異なるレイアウトが必要です。変更されたHTMLが必要です。テンプレート内からDjangoフォームウィジェットのタイプを取得します
これを正確に行うには、ウィジェットタイプを知っている必要があります。クラス名など。標準のPythonでは、これは簡単です! field.field.widget.__class__.__name__
残念ながら、テンプレートのアンダースコア変数にはアクセスできません。 素晴らしい!
あなたできテストfield.field.widget.input_type
が、テキスト/パスワード<input ../>
種類については、この唯一の作品。私はそれ以上の解決策が必要です。
私には難しいかもしれませんが、テンプレートレベルでこれを行うのが最も理にかなっています。フィールドのHTMLを扱うコードを、フィールドループに含まれる別のテンプレートに委託しました。これは、ModelForm
と標準Form
の間で一貫していることを意味します(中間フォームクラスを作成した場合は真実ではありません)。
私に20奇数のフォームを編集する必要のない普遍的なアプローチが見える場合は、私にも教えてください!
関連するバグレポートまたは機能要求:https://code.djangoproject.com/ticket/13009 – Flimm