他のフィールドの値に応じて、管理者にフィールドを条件付きで表示する最適な方法は何ですか?Django Admin:フィールドを条件付きで表示する必要があります
特に私はadd_formとchange_formについて考えています。特定の選択肢が選択されるたびに、私はいくつかのフィールドを隠すか無効にしたいと思っています。
私はこれにはJavaScriptソリューションが必要かもしれないと考えていますが、これを行うためのより良い(つまり組み込みの)方法があるのだろうかと思っています。
他のフィールドの値に応じて、管理者にフィールドを条件付きで表示する最適な方法は何ですか?Django Admin:フィールドを条件付きで表示する必要があります
特に私はadd_formとchange_formについて考えています。特定の選択肢が選択されるたびに、私はいくつかのフィールドを隠すか無効にしたいと思っています。
私はこれにはJavaScriptソリューションが必要かもしれないと考えていますが、これを行うためのより良い(つまり組み込みの)方法があるのだろうかと思っています。
ベルンハルトです。フィールドのウィジェットを条件付きで表示する/表示しないように管理ビューとテンプレートをハックすることは可能かもしれませんが、管理者のユーザーの振る舞いに基づいて動的に実行したい場合は、javascriptを使用します。
しかしそれほど恐ろしいことではありません。少なくともDjangoの管理テンプレートには、モデル/インスタンス固有のIDがあり、表示/非表示の動作をきめ細かく制御できます。
私はこれと同じ必要性があり、私はこれを行うjavascriptコードをどこに置くのだろうと思っています。私。どのテンプレートですか? –
私はあなた自身のModelFormを作成し、管理者がその(https://docs.djangoproject.com/en/1.7/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form)を使用するように指定できるはずだと思います。
フォームの_init __()メソッドを使用して、フィールドを選択的に表示します。
私は試してみて、それが動作すればこの答えを更新します。
(実際に質問を読んでください、ページが読み込まれる前に "他のフィールドの値"が設定されている場合は、このアイデアはうまくいくはずです。 、はい、JavaScriptが必要です)。
私の答えは難解かもしれませんが、あなたが取っているかもしれないデザインの方向性は、いくつかの再考の恩恵を受ける可能性があります。優れたUXを実現するためにTLCがAJAXに頼る必要があるインターフェイスがある場合は、そのためにAdminインターフェイスを使用したくないという傾向があります。
Djangoの管理者インタフェースを個人的に見ると、基本的なレベルで即座にCRUDビューを得ることができます。私は、ユーザーフレンドリーなインターフェースを必要とする人たちのために、(たとえこれらのユーザーのうちのいくつかが管理機能を操作していても)ピギーバックをしないようにします。これらのタイプのAjax UI/UXと複雑なフォームの検証を行うには、管理インターフェースを使用して技術的負債を取得します。
実際、Bernhard Vallantは私の正確な考え方をはるかに簡潔な方法で言った。私は彼をupvoteします。 –
この問題の組み込みソリューションはありません。フィールドを動的に表示するには、カスタムjavascript/ajaxソリューションが常に必要です。 –
ありがとう、私はそうだったと思った。私は、「間違った道」をやっているだけでは妄想的です。 – IntrepidDude