問題タブ [formsets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
92 参照

sql - Django 管理者: インラインで表示可能なフィールドセットをプログラムで選択する

私が欲しいのは、django Admin の ForeignKey セレクターの選択に従って、表示するフォームセットを選択できるようにすることです。

私は4つのモデルを持っています:

  1. 製品
  2. 評価
  3. 基準(質問)
  4. CriterionAnswer

私のデータベースは次のように構成されています。

管理者の製品モデル フォームで評価を選択して製品を保存すると、選択した評価の基準に対応する不足しているすべての CriterionAnswers が作成されます。次に製品を開くと、CriterionAnswers がインラインとして表示されます。次に別の評価を選択すると、他の CriterionAnswers が保存され、古いものと一緒に表示されます。選択した評価に対応する CriterionAnswers のみを表示するにはどうすればよいですか?

モデル:

管理者:

0 投票する
0 に答える
5140 参照

django - Django:エラー:[u'ManagementFormデータが見つからないか、改ざんされています']フォームセットが保存された後

保存中のフォームセットの送信ボタンを押した後、次のエラーが表示されます: "[u'ManagementForm data is missing or has been tampered with']"

これは私のviews.pyのコードです

そして私のform.html(views.pyによって呼び出されるテンプレート)

そして、アイデアは大歓迎です

0 投票する
1 に答える
1089 参照

python - Django 管理フォームが見つからないか改ざんされています - 管理フォームはテンプレートにあります

多くのフォームが含まれるテンプレートがあり、すべてが 1 つのフォーム要素にラップされています。4 つの通常のフォームと 2 つのフォームセットで構成される MultiForm を使用しています。フォームセットは、カスタム フォームセット クラスを使用するようにオーバーライドされています。テンプレートで管理フォームをレンダリングし、投稿で関連情報を確認できます。

フォームセットについては、フォームを 1 つだけ表示してページを初期化します。

結合されたフォームを送信しようとすると、次のエラーが発生します。

私は答えをどこでも検索し、同じエラーでスタックオーバーフローに関する約15の投稿を読みましたが、解決策はどれも役に立たないようです.

エラー ページでは、次の行が強調表示されます。

テンプレート:

意見:

Forms.py

0 投票する
1 に答える
1911 参照

python - Django - バグがビューにあるように見えるときに POST のコードをデバッグするにはどうすればよいですか?

Django をよりよく理解し、遭遇する可能性のある同様の問題にもっと簡単に対処できるように、幅広い質問をしようと思いました。私が抱えている特定の問題は、フォームを正しくレンダリングする最初のフォームセット コードを作成したことですが、投稿されたときに新しいオブジェクトが作成されないことです。

フォームが投稿されたことをサーバーから確認できます。エラーは発生しませんが、データベースにデータが追加されていません (django admin および manage.py シェルから確認)。manage.py シェルに投稿された内容を読み取ることは可能でしょうか? フォームがデータを正しく投稿し、ビューで受信されたかどうかを確認できるようにしたいと思います。次に、データが正しく投稿されていないか、ビューがデータを正しく処理していない理由を確認できます。

特定の問題については、ウィザードの 1 人が見つけられる単純な初心者エラーの場合に備えて、以下にコードを配置します。私はこのチュートリアルに従って、自分の目的に合わせて適応しようとしました。

モデル.py

フォーム.py

ビュー.py

0 投票する
2 に答える
1638 参照

django - Django - フォームと対応するインライン フォームセットを事前入力して、別のオブジェクトに基づいて新しいオブジェクトを作成する

既存の出版物に基づいて新しい出版物を作成する可能性をユーザーに提供したいと考えています。そのためには、新しいアイテムの基にしたい出版物の ID を含む「basedview」へのリンクをクリックしてもらいたいのです。n:n 関係の 2 つのフォームセットが含まれています。

これは、ベースとなる出版物からのデータを含むすべてのフィールドが事前に入力されたフォームを開く必要があります。ユーザーが必要に応じて変更を加えたら、新しいパブリケーションとフィールドセットの新しいリレーションを保存する必要があります - 後者は難しい部分です。

私の質問は、対応するすべてのフォームセットをデータベースからロードし、すべての pk を削除しながら、出版物アイテムとの関係を維持するにはどうすればよいですか?

現在、 get メソッドでは次のようになっています。

しかし、それは既存の出版物の編集に過ぎません。フォームセットにデータを入力した後、どうにかして pk を削除するか、フォームセットに別の方法でデータを入力する方法を見つけなければなりません。何か案は?

どうもありがとうございました!

ここに完全なコードの抜粋があります:

0 投票する
1 に答える
490 参照

django - django modelformset_factory フォームを手動でレンダリングする方法

画像のアップロードと編集に django の modelformset_factory フォームを使用しています。現在、フォームを表示すると、次のように既存のデータを含むフォームが表示されます。

  • フィールド名: 現在: 画像へのリンク (例: images/filename.jpg)
  • 変更: 画像入力フィールド
  • 削除するチェックボックス

(現在: 画像へのリンク (例: images/filename.jpg)) の表示を変更するにはどうすればよいですか? 代わりに画像名を表示するように画像リンクを変更し、ユーザーがクリックしたときに新しいウィンドウで開きたいと考えています。django のドキュメントをチェックしてフォームを手動でレンダリングしましたが、関連情報が見つかりませんでした。

ありがとうございました!

モデル:

0 投票する
0 に答える
185 参照

django - マスターのフォーム フィールド値に従ってフォームセットを検証する

表形式のインラインフォームを使用して、管理者マスターの詳細があります。

達成する特別な検証がいくつかあります。

  1. 「field_type」が「list」の場合、フォームセットに少なくとも 1 つのアイテムが追加されていることを確認します。
  2. ただし、そうでない場合 (field_type に別の値がある場合)、検証は行われません。

「field_type」が「list」の場合はフォームセットを表示し、そうでない場合は非表示にします。これはジャバスクリプトです。また、サーバー上でそれを検証する必要があります。ValueItemInlineFormSet の clean() でそれを行います。問題は、フォームセットを常に検証していることであり、field_type = "list" の場合にのみ発生するはずです。マスター フィールドの値をフォームセットに取得するにはどうすればよいですか?