問題タブ [django-related-manager]

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

django - Djangoで中間テーブル全体を選択する方法

私のデータベースでは、オブジェクト間の引用を ManyToMany フィールドとして持っています。基本的に、すべてのオブジェクトは他のオブジェクトを引用できます。

Postgres では、これにより中間テーブルが作成されました。テーブルには約 1,200 万行あり、それぞれが次のようになります。

2 つの質問:

  1. このテーブルを選択する最も Django らしい方法は何ですか?

  2. 全体をメモリに取り込まずに、このテーブルを反復処理する方法はありますか? シンプルなselect * from TABLE_FOO.

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

django - Django で backref / RelatedManager の順序を指定する

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

blog.entry_setで注文したい場合capture_dt、これを取得する最良の方法は、注文を に設定してモデルにMetaクラスを追加することです。Entryordering = ('capture_dt', )

残念ながら、これにより、モデルEntryからアクセスするときのソート方法とは対照的に、 のグローバル ソート動作が変更されます。Blogbackref ごとに backref ごとに順序付け動作を設定する方法はありますか?

FWIW、SQLAlchemy は関係を宣言するときにこれをサポートします。

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

python - Tastypie save_m2m、TagRelatedManager は False と評価されます

実際、私はdjango-tagulousTagFieldからのを含むtastypieモデルリソースを保存しようとしています

ここに私のモデルとリソースがあります:

カール部分:

シェルはエラーを返しませんが、タグは新しいオブジェクトに関連付けられていません。

ModelResource save_m2m methodタグオブジェクトが存在する呼び出しの前にをオーバーライドすることによりsuper(print bundle.data['tags'])、super(SimpleModelResource, self).save_m2m(bundle)tastypie でタグフィールドに関連付けられた関連マネージャーを探します。m2m アソシエーションをスキップするif not related_mngrと評価されます。True

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

python - Django ORM の 1 回のリクエストで 1 つの関連オブジェクトを取得する

私はこのモデルを持っています

すべての本を取得して、現在のユーザーが 1 回のリクエストで各本を気に入っているかどうかを確認したい

Book.objects.select_related('like_book').all()

多くの結果のために機能しません

Book.objects.prefetch_related('like_book').all()

はキャッシュlike_setされますが、このブックのすべてのいいね! が含まれます。このユーザーには 1 つだけではありません。

最後に、追加のフィールドが必要ですis_liked

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

django - 関連モデルの Django アノテーション

これらのモデルを持つ (簡略化):

場合によっては、各成分に「ユーザーがその製品を持っているかどうか」とマークされたレシピのリストを取得する必要があります。また、特定のユーザーに応じて、他の計算フィールドもあるかもしれません。私が欲しいものの例:

しかし、もちろん、他の場合には、そのフィールドを食材に付けたくない場合もあります。

カスタムマネージャーが必要であることを理解しています。しかし、簡単な解決策 - 「is_user_have」をプロパティとして Ingredient モデルに追加し、get_for_user メソッドでカスタム マネージャーを定義し、ベースの get_queryset を呼び出してから、for ループでそのフィールドにデータを入力する - は機能しません。

更新 1
必要な注釈を取得する方法を見つけました。ここに、成分のカスタム マネージャーを示します。

しかし、次の 2 つの問題があります。

  1. ユーザーをこのマネージャーに渡すことができません (テスト用にハードコードされています)
  2. この注釈が必要な場合に状況に合わせてプロキシ モデルを作成できません (以下を参照)。これは、Ingredient モデルのデフォルト マネージャーを置き換えた場合にのみ機能します。

代わりに使用される成分のデフォルト関連マネージャーの場合、このコードは機能しません。

Ingredient モデルのデフォルト マネージャーを置き換えた場合にのみ機能します (ただし、それは私が望むものではありません)。