問題タブ [django-model-utils]

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 に答える
1658 参照

django-models - Django REST Framework のネストされたシリアライザーと select_related

次のセットアップがあります。django-rest-framework と django-model-utils InheritanceManager を使用して、子オブジェクトを自動的に取得しています。

私の問題は、select_relatedが正しく機能していないことです。検索アクションを呼び出すと、デバッグ ツールバーに 1 つではなく 2 つのクエリが表示されます。1 つ目は、ロケーション テーブルとの予想される内部結合です。ただし、ロケーション テーブルへの追加のクエリがあります。

だから私はselect_relatedテーブルを結合するために使用していますが、どういうわけかシリアライザーはデータベースに追加のクエリを作成します。

残りのフレームワークを使用せずにオブジェクトを直接取得すると、

例外として機能し、データベースに1回だけヒットします。

これを解決する方法を知っている人はいますか?

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

python - Django - Admin でデフォルト マネージャーをオーバーライドする - InheritanceManager

(これは、「すでに回答があるかもしれない質問」リストに基づいた一般的な質問のようですが、どれも私を助けませんでした。)

マルチテーブル継承を持つモデルがいくつかあります。

管理者 (およびその後のフロントエンド アプリ) では、基本クラス内のすべてのもののリストが必要であり、それらがどの子 (または孫) クラスに属しているかを識別することもできます。

これには継承マネージャーを使用しようとしています。これまでのところ運がありません。

文字列「person」と「Entry」の追加は単なるテストです。

エンティティのリストはEntry、(実際には) 人物であっても を表示するだけです。

Entry.__str__最終的なサブクラスを表示するものに書き込めるようにしたいと思います。そうすれば、エントリのリストを取得して次のように表示できます。

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

python - Djangoモデルユーティリティを使用してサブクラスでクエリセットをフィルタリングする方法は?

継承マネージャーに django-model-utils を使用しています。一度に 1 つのサブクラスのみの結果を取得したい。

manager.py

models.py

画像タイプのみの結果を返したい。このようなより単純なクエリを書くことによって。

私が試したこと:

これは機能しますが、一種のアンチパターンです。すべてのコンテンツ タイプのビューに条件を記述したくありません。

モデルでプロパティを定義したり、マネージャー メソッドに変換したりするより良い方法はありますか? または私は何かを逃していますか?

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

python - 「model_utils」という名前のモジュールはありません

Python 3.4.3 と django 1.9.8 を使用しています。

私のmodels.pyには、

from model_utils.managers import InheritanceManager

しかし、このエラーが発生します:

ImportError:「model_utils」という名前のモジュールがありません

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

django - django-model-utils を介してモデルにカスタム クエリセットをアタッチする

カスタム QuerySet サブクラスを定義し、django-model-utils を使用してモデルにアタッチしようとしています。以前の Django バージョン (私は 1.9 を使用しています) では 、次のコードでPassThroughManagerを使用してこれを実現していました。

from model_utils.managers import PassThroughManager

前述のよう

PassThroughManager は django-model-utils 2.4 で削除されました。代わりに、Django の組み込み QuerySet.as_manager() および/または Manager.from_queryset() ユーティリティを使用してください。

私はコードを書き直そうとしました (申し訳ありませんが、あまりにもばかげているように見えますが、締め切りに間に合うようにやみくもに考えている数か月の経験があります)。

今のところ、私は終わったTypeError: as_manager() takes exactly 1 argument (2 given)。誰でも正しい構文で光を当てることができますか?