問題タブ [django-managers]
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.
python - use_for_related_fieldsはDjangoでどのように機能しますか?
ドキュメントからそれを把握することはできません。具体的には、私にはまったくわかりません。
- それはグローバルな設定ですか?したがって、この属性をモデルマネージャーの1つで指定すると、すべてのモデルクラスでグローバルに使用されますか?
- グローバル設定でない場合、どの関係が正確に影響を受けますか?
- 同じモデルのある関係に1つのモデルマネージャーを配置し、別の関係に別のモデルマネージャーを配置することは可能ですか?
ドキュメントにはそれらのafaikが欠けているので、何よりも私は良い最小限の使用例をいただければ幸いです。ありがとう。
python - カスタム create メソッドとカスタム get メソッドの作成を支援する
私は次のような2つのモデルを持っています:
Session
モデルにカスタム作成メソッドを2つ書いてほしいので、これを書くとき:
...Session
その訪問者の次の連続するシーケンス番号、つまり 3 を持つ新しいレコードをテーブルに取得します。サンプル データを次に示します。
Session
もう 1 つは、モデルにカスタムの get メソッドを記述して、次のように記述していたことです。
...そのビジターの以前のレコードを取得し、シーケンス番号が最大です。ここにいくつかのサンプルデータがあります
これを達成する方法を教えてください。このコードはモデルまたはマネージャーに配置する必要がありますか?
みんな、ありがとう。
django - djangoソフト削除は削除をカスケードしません
私はdjango管理者でソフト削除を使用しています。問題は、外部キー項目を削除すると、リンクされているすべての項目の削除がトリガーされないように見えることです。または、そうかもしれませんが、モデルにあるカスタム定義削除を実行していません。
-個人を削除すると、論理的に削除されますが、関連するアカウントはそのまま残ります。
-論理的な削除を削除すると、個人を削除するとアカウントも削除されますが、これは正しいです。
したがって、理想的には、個人を削除するときに、個人をソフト削除し、その個人を参照しているアカウントもソフト削除します(非アクティブとしてマークします)。
更新:質問を更新しました。Person モデルでソフト削除を実行しているとは言いませんでした。また、def の削除がオーバーライドされていない場合、カスケードの削除が機能することを追加しましたが、削除をオーバーライドすると、カスケードはトリガーされません。
python - Djangoマネージャーの順序はどのような機能に影響しますか?
それで、私はほとんどのドキュメントを読み、SOを少し調べてきましたが、私の質問に対する答えを完全に見つけることができません。コードから始めましょう。
そのため、遊んでいるときに、このように記述してget_object_or_404()
を使用するActiveManager
と、最初にすべてのアクティブなレコードを検索してから、クエリに関連するレコードを返すことに気付きました。ただし、マネージャーの順序を入れ替えた場合:
次に、デフォルトのマネージャー(この場合は)を使用all_objects
してクエリを実行します。この変更は他にどのような機能に影響を与えるのでしょうか。
編集:クラスで最初に見つかったマネージャーがデフォルトのマネージャーになることは理解していますが、どの特定の関数がこのデフォルトのマネージャーを使用しているのか疑問に思っています(のようにget_object_or_404
)
python - マネージャーからカスタムモデルインスタンスを返す
このようなモデルがあり、データをキーと値のペアとして格納します。
get
このモデルには、メソッドをオーバーライドするカスタムマネージャーがあります。モデルのようにクエリを実行するときは、オーバーライドされたメソッドをSettings.objects.get(company=1)
使用して、オブジェクトのリストを返すを実行します。すべてのキーと値のペアをフィールドとして持つ単一のカスタムQuerySetを生成できますか?get
self.objects.filter(company=1)
例:
モデルのデータが次のような場合:
誰かが実行したときにそのようにピボットされるクエリセットを返したいですSettings.objects.get(company=1)
:
私は冗長にしようとしましたが、もっとよく説明する必要があるかどうか教えてください。Djangoモデルがこのシナリオを許可するかどうかはわかりません。
みんなありがとう。
編集:プロキシモデルの使用
これは、プロキシモデルを使用して達成できることですか?つまり、キー値フィールドを格納するためのベースモデルと、通常get
およびsave
メソッドを使用したカスタムプロキシモデルがありますか?
django - チェーン クエリでカスタム マネージャーを使用する方法
クエリをランダム化する必要があるカスタム マネージャーを作成しました。
最初にマネージャーで定義されたメソッドを使用すると、問題なく動作します。
既にフィルター処理されたクエリをランダム化する必要があります。マネージャーとチェーン内のメソッドを使用しようとすると、エラーが発生しました。
フィルタリングの結果はモデル クラスのインスタンスではなく、django.db.models.query.QuerySet
であるため、それぞれ my manager と method はありません。
チェーン クエリでカスタム マネージャーを使用する方法はありますか?
python - カスタム クラス マネージャーのメソッドで前のクエリによって返されたデータを取得する方法は?
チェーン可能なメソッドを使用してカスタム マネージャー クラスを開発しています。問題を抱えて。フィルタリングされたクエリをランダム化する必要があります。ランダムなレコードを取得するには、フィルタリングされた個別のレコードの数が必要です。しかし、私はそれを取得する方法がわかりません。それどころか、私はすべてのレコードのカウントを持っています。
使用:
その数が現在のクエリのレコード数を超えているため、遅かれ早かれエラーが発生します。
django - 関連するオブジェクトでカスタムマネージャーを使用するにはどうすればよいですか?
カスタムマネージャーがいます。関連するオブジェクトに使いたいです。ドキュメントでuse_for_related_fieldsを見つけまし た。しかし、それは私がそれを使用したようには機能しません:
私はそれを1つのモデルに使用しました:
そして、m2m関連オブジェクトで同じことをしようとしました:
エラーが発生しました:
私のやり方でカスタムマネージャーを使用することは可能ですか?もしそうなら、どのようにそれを機能させるのですか?
編集
私のモデル:
django - Djangoカスタムモデルマネージャー
Djangoカスタムモデルマネージャーを使用する正しい方法について混乱しています-ドキュメントに基づいて、フィルタリングの方法として1つのモデルの一連のマネージャーを作成できます。しかし、フィルタリング用の一連の関数を使用して1つのマネージャークラスを作成してみませんか?一方の方法はもう一方の方法よりも優れていますか?なぜ?
例えば:
対