Django Form サブクラスを HTML ページに出力する方法に応じて、3 つのオプションがあります。
1 つ目は Form とはまったく関係ありません。すべての HTML フォーム入力は最終的に request.POST になるため、そこからアクセスできます。確かに、それらは Form サブクラスにバインドされないため、カスタム フォーム コンストラクターを使用するか、request.POST でインスタンス化した後に Form オブジェクトにプロパティを設定して、値を手動で挿入する必要があります。これはおそらく最も望ましくないオプションですが、ユースケースが実際に他に何もサポートしていない場合に備えて言及します.
2 つ目は、HTML でフォーム フィールドを手動で出力する場合のオプションです (つまり{{ myform.field }}
、 だけではなくを使用します{{ myform }}
。この場合、隠し変数を作成して、カレンダー GUI ツールの値を含めます (GUI ツールが既に提供している可能性があります)。この隠しフィールドを正しい名前と ID で Form サブクラス自体に追加し、隠し django フォーム ウィジェットがあることを確認します. 必要に応じて、Rob が提案するように javascript を使用して隠しフィールドに入力します. フォームが投稿された場合、フォーム サブクラスにその名前のフィールドがあるため、通常どおりフォーム サブクラスにバインドされますclean()
。
3 番目の最良のオプションは、カスタム django フィールドを作成することです。アンドリューの投稿にはリンクがあります。Django フィールドには要件を指定する機能があるjs
ためcss
、カレンダー ウィジェットを使用するすべてのページに対して、これらの依存関係を自動的にカプセル化できます。