問題タブ [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.
django-models - Django REST Framework のネストされたシリアライザーと select_related
次のセットアップがあります。django-rest-framework と django-model-utils InheritanceManager を使用して、子オブジェクトを自動的に取得しています。
私の問題は、select_related
が正しく機能していないことです。検索アクションを呼び出すと、デバッグ ツールバーに 1 つではなく 2 つのクエリが表示されます。1 つ目は、ロケーション テーブルとの予想される内部結合です。ただし、ロケーション テーブルへの追加のクエリがあります。
だから私はselect_related
テーブルを結合するために使用していますが、どういうわけかシリアライザーはデータベースに追加のクエリを作成します。
残りのフレームワークを使用せずにオブジェクトを直接取得すると、
例外として機能し、データベースに1回だけヒットします。
これを解決する方法を知っている人はいますか?
python - Django - Admin でデフォルト マネージャーをオーバーライドする - InheritanceManager
(これは、「すでに回答があるかもしれない質問」リストに基づいた一般的な質問のようですが、どれも私を助けませんでした。)
マルチテーブル継承を持つモデルがいくつかあります。
管理者 (およびその後のフロントエンド アプリ) では、基本クラス内のすべてのもののリストが必要であり、それらがどの子 (または孫) クラスに属しているかを識別することもできます。
これには継承マネージャーを使用しようとしています。これまでのところ運がありません。
文字列「person」と「Entry」の追加は単なるテストです。
エンティティのリストはEntry
、(実際には) 人物であっても を表示するだけです。
Entry.__str__
最終的なサブクラスを表示するものに書き込めるようにしたいと思います。そうすれば、エントリのリストを取得して次のように表示できます。
python - Djangoモデルユーティリティを使用してサブクラスでクエリセットをフィルタリングする方法は?
継承マネージャーに django-model-utils を使用しています。一度に 1 つのサブクラスのみの結果を取得したい。
manager.py
models.py
画像タイプのみの結果を返したい。このようなより単純なクエリを書くことによって。
私が試したこと:
これは機能しますが、一種のアンチパターンです。すべてのコンテンツ タイプのビューに条件を記述したくありません。
モデルでプロパティを定義したり、マネージャー メソッドに変換したりするより良い方法はありますか? または私は何かを逃していますか?
python - 「model_utils」という名前のモジュールはありません
Python 3.4.3 と django 1.9.8 を使用しています。
私のmodels.pyには、
from model_utils.managers import InheritanceManager
しかし、このエラーが発生します:
ImportError:「model_utils」という名前のモジュールがありません
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)
。誰でも正しい構文で光を当てることができますか?