問題タブ [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 投票する
2 に答える
427 参照

django - django ビュー - 一般的なビューで m2m フィールドにアクセスする

私はこの問題に出くわし、それを解決しようとして初心者の脳が揚げられました。ここには、欠けている基本的な概念がいくつかあるように感じます。

したがって、カテゴリ選択フィールドと「監督」モデルへのm2m関係を持つこの「映画」モデルがあり、2つの異なるビューを作成しようとしています.1つはカテゴリでフィルタリングされた映画のリストを返し、もう1つはリストを返します監督によってフィルタリングされた映画の数。最初のものは簡単ですが、ディレクター モデルの名前フィールドを取得して 2 番目のフィルターを作成する方法がわかりません。

だから私はこのモデルを持っています(私が上で述べたカテゴリのものを含む無関係なものを取り出しました)

このURL

そしてこの景色

関連するオブジェクトのリストをレンダリングするために、両方のビューで同じテンプレートが使用されることになっています ビューは、m2m フィールドのクエリセットで使用しているフィルターが好きではありませんが、実際にそれを行う方法がわかりません。考えられることは何でも試してみましたが、「キーワードを式にすることはできません」というエラーが表示されます

この卑劣な初心者への助けをいただければ幸いです。

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

django - Django 管理ページの多対多関係でより多くのフィールドを表示する

manytomanyfield を持つページ構築モデルがあります 私が望むのは、manytomany フィールド モデルの他の列を表示することだけです

名前フィールドとカテゴリ フィールドを持つ画像モデルがあり、多対多フィールドの代わりにフィルターを使用してインライン テーブルの管理ページに両方を表示したいと考えています。

0 投票する
3 に答える
95 参照

mysql - データベース構造: この構造はこの m:m で機能しますか?

ここに私の問題があります: (MySQL を使用)

「ショップ」と「クライアント」という 2 つのエンティティがあります。また、'clients' と 'shops' の間に 'clients_shops' (CakePHP 命名規則) と呼ばれる M:M テーブルがあります。私がこのようにしている理由は、これが「クライアント」が多くの「ショップ」を持つ可能性があり、「ショップ」が間違いなく多くの「クライアント」を持つ SaaS アプリケーションであるためです。

ただし、実際に必要なのは、「ショップ」が自分のレコードからではなく、自分のレコードからその「クライアント」を編集/削除することであるため、ショップに「クライアント」レコードを更新/削除する機能を与えたくありません。 「clients」によって管理されるマスター「clients」テーブル。

とにかく、この構造を使用すると、「ショップ」は「clients_shops」テーブルでクエリを実行してクライアントのリストを取得でき、「クライアント」はクエリを実行して「ショップ」のリストを取得できます。これまでのところ良い...

これまでのところ、データベースは次のようになっています。

ORM は次のようになります。

これまでのところは順調です(私は思う...)が、ここで私の質問です。「trips」という名前の 3 番目のテーブルがあるとします。「トリップ」テーブルには、「店」が提供する「旅行」を「顧客」が予約する個々の予約に関する情報が格納されます。これは私の脳がどろどろになっているところです。この関係をどのように設定すればよいですか?

この方法ですか:

clients.client_idまたは、 ANDを使用する別のテーブルのように、これを行うためのより良い方法がありますclients_shops.clients_shops_id

このすべてを実際に読んでくれた人に、前もって感謝します!

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

django - Django管理者の保存がm2m_changedシグナルでpost_removeアクションを送信しない

関連モデルを保存するときに、多対多のモデルを更新しようとしています。これは、 m2m_changed シグナルを使用して可能にする必要があります(そして、機能します!しかし、管理者ではできませんか?)。

シェルで実行すると、すべてが完全に機能します。たとえば、次のように tests.py を使用します。

次の結果が得られます (「test」は出力されるタグ名です):

完全!そして、管理者のエントリにタグを追加すると、次のようになります (HTTP の間):

まだいい!pre/post_clear が何のために呼び出されたのかわかりません...そして削除すると:

ああ!pre/post_remove は呼び出されません! pre/post_clear は役に立たないだけでなく、主キーも提供しません。これは管理者実装のバグのように感じます。助言がありますか?

更新:バグ #16073が提出され、承認されました。

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

python - Django admin の使用時に ManyToMany フィールドが保存されない

奇妙な問題が発生しています。ここの誰かが光を当ててくれることを願っています。

super() を実行した後、モデルの save() メソッドをオーバーライドして、ManyToMany フィールドにいくつかの値を追加しています。私の問題は、Django admin に保存すると、値が関係に追加されたように見えますが、再び空になることです。

しかし、私がそれを行うと、manage.py shell問題なく動作します。

そこに2つのprintステートメントを入れました.Django管理者またはシェルのどちらで実行しているかに関係なく、まったく同じ出力が生成されます.

これは、printステートメントの出力です。

これを引き起こしている可能性のあるものについて何か提案はありますか?

編集: save() の m2m 関係へのすべての手動変更は、管理インターフェースを介して保存するときに Django によって破棄されるようです。これは、フォームの処理方法に関連していますか?

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

django - admin-interface で他のモデルからの値を django-textfield に入力する最良の (= 最も簡単な) 方法は何ですか?

私は、カスタム ブログ Django プロジェクト用の小さなニュースレター アプリに取り組んでいます (私のためだけに)。このプロジェクトの主な機能の 1 つは、一連の記事タイプの定義です。すべての記事タイプは、抽象基本クラス「記事」の子です。記事タイプの 2 つの例は、「イベント記事」と「ビデオ記事」です。ニュースレター アプリには、「コンテンツ」フィールド (= メール メッセージ) があります。ここで、ニュースレターに含めるいくつかの記事 (任意のタイプ) を選択したいと考えています。ニュースレターにまだ掲載されていないすべての記事を検索する関数を作成するだけで簡単になる場合があります。次に、必要なすべての情報を収集し、それらをテキストに結合して、関数をフィールドのデフォルトとして設定します。でも記事は自分で選んでいます。私はm2mフィールドについて考えました、しかし、いくつかの記事 (オブジェクトの編集フォームのインライン) を選択して、コンテンツ フィールドに必要な情報 (absolute_url や見出しなど) をすぐに入力するにはどうすればよいでしょうか? 事前にご協力いただきありがとうございます。

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

django - Django シグナル m2m_changed がトリガーされない

最近、Django プロジェクト (v. 1.3) でシグナルの使用を開始しましたが、モデルで m2m_changed シグナルがトリガーされない理由を理解できないことを除いて、すべて正常に動作します。Section インスタンスは、django 管理フォームで PageChild インライン インスタンスを追加/削除することで編集されます。

ドキュメントに記載されているように、いずれかの方法でコールバック関数を登録しようとしましたが、結果が得られません。

私のmodels.pyからの抜粋

明らかな何かが欠けていますか?

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

django - django-reversion 管理者以外の ManyToMany フィールドを元に戻す

プロジェクトで django-reversion を使用しています。そして、それは 1 つのことを除いてうまく機能します: ManyToMany フィールドの以前のバージョンを取得できません。しかし、私のコードではなく、django管理者では機能します。以前のバージョンを取得するには、次のコードを使用します。

vprod = Version.objects.get_for_date(product, ondate).get_object_version().object

「製品」が製品クラスのオブジェクトであるm2mフィールドを除いて機能します。

取得できvprod.name、必要なものを返しますが、試しvprod.elements.all()てみると、要素の数が変更されていても、現在の (最後の) バージョンのみがリストに返されます。

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

hibernate - 休止状態のエンティティ間の関係を効率的に更新する

私は 2 つの休止状態のエンティティ間に m2m 関係を持っています。それらを映画と俳優と呼びましょう。双方向リンクでセットアップしました。明らかに、これは映画テーブル、俳優テーブル、およびデータベース内の 2 つの間の外部キーの結合テーブルとしてモデル化されています。

UI を使用すると、アクターとムービーの間の関係を更新できます。内部的に、UI は関連する映画と俳優の ID を使用して画面上の更新を追跡し、「保存」を押すと映画 ID と俳優 ID のリストをコントローラーに送信します。

ここで私の質問: データベースで 4 つのアクタを追加してムービーを更新するとします。追加するアクター ID のリストはありますが、UI から ID を受け取っただけなので、実際の Actor オブジェクトはありません。

この更新を行うには、本格的な Actor オブジェクトを 4 つ入力して、それらを Movie オブジェクトに追加し、データベースに保存できるようにする必要がありますか? つまり、最初にデータベースから選択してから更新を行う必要がありますか? 実際に更新されるのは結合テーブルにいくつかの行を追加することだけであり、それを行うために必要なすべての情報を既に持っているため、余分な選択呼び出しを行うのは非効率的です。

したがって、休止状態は、結合テーブル自体にキーを直接追加する便利な方法を提供しますか (カスタムの生の SQL クエリを作成する必要はありません)。

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

django - Djangoで、m2mリレーションの両側のいずれかを指定できるフォームを作成するにはどうすればよいですか?

私は次のようなモデルを持っています:

を指定できるフォーム(ModelForm?)を作成/作成したいのですがoutput_edgesinput_edgesそれらは適切に保存されます。デフォルトでは、上記のモデルのフォームは、POSTにoutput_edges値が含まれている場合にのみ機能します。しかし、そうではありませんinput_edges