問題タブ [m2m]

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 投票する
4 に答える
10820 参照

django - Django m2m form save "through" table

'through'クラステーブルを含むm2mデータの保存に問題があります。選択したすべてのメンバー(フォームで選択)をスルーテーブルに保存したいと思います。しかし、ビューの「through」テーブルを初期化する方法がわかりません。

私のコード:

とビューで:

Membershipテーブルに正しく入力されるようにメンバーシップを初期化するにはどうすればよいですか?

0 投票する
5 に答える
28664 参照

django - django 中間モデルを指定する ManyToManyField に値を設定できません。代わりにマネージャを使用してください

私は同じフォームの2つのテーブルに保存することに取り組んでいます-m2mの関係があります。成功しません。次のようなエラーが続きます。中間モデルを指定する ManyToManyField に値を設定できません。メンバーシップが私の「スルーテーブル」である代わりに、メンバーシップのマネージャーを使用してください。

私のコード:

私のモデル:

どこが間違っていますか?

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

python - Django Admin - M2M モデルの中間フィールドの表示

新聞記事のリストを含む Django アプリがあります。各記事には、「スポークスパーソン」と「会社」(記事で言及されている会社) の両方との m2m 関係があります。

現時点では、新しい記事を作成するための [記事の追加] ページは、私たちが望むものに非常に近いものです。これは単なる Django Admin であり、2 つの m2m 関係を設定するために filter_horizo​​ntal を使用しています。

次のステップは、各 m2m 関係の中間フィールドとして「評価」フィールドを追加することでした。

だから、models.pyの例

ここでの問題は、会社とスポークスパーソンのフィールドを「スルー」に変更して仲介者を使用すると、記事の追加ページに会社/スポークスパーソンの関係を記事に追加するための filter_horizo​​ntal コントロールがなくなり、完全に消えてしまうことです。まったく見えません。これがなぜなのかわかりません。

クールな filter_horizo​​ntal ウィジェットを引き続き使用して関係を設定し、その下に別のフィールドを埋め込んで評価を設定する方法があることを期待していました。ただし、Django管理者を活用しながらこれを行う方法がわかりません。

Django admin で単一のウィジェットをオーバーライドすることについての記事をここで見ました。

http://www.fictitiousnonsense.com/archives/22

ただし、そのメソッドがまだ有効かどうかはわかりません。また、中間モデルへの FK を使用して、ここに適用するかどうかもわかりません (基本的にはインラインですか?)。

確かにこれをすべて行う簡単な方法はありますか?

乾杯、ビクター

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

django - Djangoはアイテムのリストをm2m中間テーブルに保存します

クラスに m2m フィールドとスルー テーブルがあります。スルーテーブルからアイテムのリストを保存するテーブルではありません。以下のような複数選択フォームがあり、選択したすべてのアイテムを保存できるようにしたい場合、どうすればよいですか??

私のモデルフォームは次のようになります。

そして私の保存方法は次のようになります:

これはどのように行うことができますか?ありがとう!

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

django - Djangoの別のアプリケーションでManyToManyリレーションを定義する

ユーザーとプロジェクトのアプリがあり、プロジェクトごとにdjango-authを拡張するためのロールと呼ばれる別のアプリを定義したいと思います。

RolesアプリでProjectMembershipをカスタムのManyToManyリレーションシップモデルとして定義しました。throughしかし、宣言を使用してユーザーまたはプロジェクトモデルでM2Mフィールドを定義するにはどうすればよいですか?

では、問題は、別のアプリからモデルのフィールドを定義できるかどうかです。

0 投票する
4 に答える
10297 参照

django - django モデル インスタンスのすべてのフィールドをコピーする

これは非常に基本的なことだと思いますが、Django を初めて使用するので、これを処理する方法がわかりません。

django-model のインスタンスをコピーする必要があります。hereで説明されているように、ManyToMany 関係のコピーには問題があります。しかし、添付ファイル「django-model-copying.diff」にはその機能があると思います。わかりません-私のDjangoにはすでにその機能がありますか?呼び方がわかりません。助けていただければ幸いです。

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

mysql - IntegrityError と Django m2m リレーション

私は比較的単純な Django アプリを持っていますが、db 操作でかなりの同時実行を担当する非常に重い使用法があります。

タグモデルへのm2mを備えたモデル投稿があります。

コード内の 1 行p.add(t)が繰り返し mysql 例外を引き起こしています (pは Post インスタンスで、tは Tag インスタンスです)。

これが発生すると、これを手動でp.add(t)正常に実行できるため、通常の実行時に db/app が特定の状態にあることに関係している必要があります。1000回のタグ追加試行ごとに約1回発生しますが、検出できるパターンはありません(つまり、例の「329051-1827414」ペアの両方の数字が変化します)

関連するテーブルのmysqlのACHECK TABLEは、それらがすべて一見OKであることを示しています。

何か案は?

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

django - django-admin: m2m モデルの作成、保存、関連付け

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

プロダクション管理者に m2m 関係がありますが、新しいプロダクションを作成すると、デフォルトのギャラリーが作成され、2 つの関係が登録される機能が必要です。

これまでのところ、プロダクションの保存を上書きすることで、デフォルトのギャラリーを作成できます。

これにより、モデル インスタンスが作成されて保存されます (まだ存在しない場合) が、2 つの間の関係を登録する方法がわかりません。

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

django - Django との関係 多対多の関係?

私は Django と OO に比較的慣れていないため、明らかな何かが欠けている可能性がありますが、以下をモデル化する方法について頭を悩ませることはできません。

  • 場所があります。

  • 私はゲームを持っています。

各場所には必要な数のゲームを配置でき、ゲームは複数の場所に配置できます (これらは、特定のインスタンスではなく、ゲーム タイトルである「モノポリー」のようなゲームです)。

これは、m2m 関係でモデル化するのに十分単純です。

また、通常の Django ユーザー モデルもあります。

さて、私がこの関係に加えようとしているのは、スコアの概念です。

ユーザーは、特定の場所にあるゲームのスコアを入力できる必要があります。次に、たとえば、ある場所での各ゲームの上位 10 のスコアだけでなく、すべての場所でのゲームのグローバルな上位 10 のスコアも表示できるようにする必要があります。

したがって、基本的には、ユーザー、ゲーム、および場所にリンクされたスコアが必要です。

それは、関係自体に対するある種の関係であるべきだと私には思えます。m2m 関係と中間モデルの追加フィールドを調べましたが、これを適切に行う方法がわかりません。

任意のポインタを喜んでいただければ幸いです。

ありがとう!

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

django-models - Django: m2m_changed シグナルで多対多フィールドの変更を検出できません - モデルレベルでの監査

モデルでどのフィールドが変更されたかを追跡したいと思います(つまり、djangoやdjango-reversionがすでに行っているような管理/フォームレベルではなく、よりアトミックであるため、モデルレベルで監査します)。事前/事後保存/削除シグナルを使用して、任意のフィールドに対してそれを行うことができます。ただし、m2m フィールドでそれを行うには問題があります。

以下のコード サンプルでは、​​逆の関係であるため、ユーザー変更フォームで「custom_groups」m2m フィールドを定義します。たとえば、ユーザーが管理インターフェイスでフォームを保存すると、「custom_groups」フィールドに変更があるかどうかをログに記録したいと思います。

モデル:

モデルフォーム:

m2m_changed シグナルを使用する際の問題は、代入演算子を使用して m2m フィールドが更新された場合に実際に何が変更されたかを確認できないことです。

これは、すべてのオブジェクトを手動で追加する前に、内部的に django が *custom_groups* に対して clear() を実行するためです。これにより、m2m フィールドで pre/post-clear が実行され、次に pre/post save が実行されます。

私はこれをすべて間違った方法でやっていますか?実際に機能する簡単な方法はありますか?

ありがとう!