問題タブ [django-custom-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 投票する
3 に答える
15964 参照

django - Django カスタム マネージャー - ログイン ユーザーが作成したオブジェクトのみを返すにはどうすればよいですか?

カスタム オブジェクト モデル マネージャーを上書きして、特定のユーザーが作成したオブジェクトのみを返すようにしたいと考えています。管理者ユーザーは、オブジェクト モデル マネージャーを使用してすべてのオブジェクトを返す必要があります。

今、私はうまくいく可能性のあるアプローチを見つけました。彼らは、次のような独自のミドルウェアを作成することを提案しています。

また、カスタム マネージャーでは、get_current_user()メソッドを呼び出して、特定のユーザーが作成したオブジェクトのみを返すことができます。

これは、このユースケースに対する適切なアプローチですか? これは機能しますか?それとも「大槌で木の実を割る」ようなものですか?;-)

ちょうど使用:

それぞれのビューでは、私にはあまりきれいに見えません。

編集このミドルウェアアプローチを使用しないでください!!!

以下のJack M.が述べたアプローチを使用してください

しばらくテストした後、このアプローチは非常に奇妙に動作し、このアプローチではグローバル状態と現在のリクエストを混同します。

以下に示すアプローチを使用します。とても簡単で、ミドルウェアをいじる必要はありません。

現在のユーザーまたは他のユーザーを入力として期待する関数を使用して、モデルにカスタム マネージャーを作成します。

ミドルウェア アプローチに関するこのディスカッションも参照してください。

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

python - Django カスタム マネージャー

私はいくつかのコードを見ていますが、これが良い習慣であるかどうか興味があります。

カスタム マネージャーが get_query_set (言い換え) メソッドをオーバーライドするのをいつも見てきました。代わりに、これは物事を処理する良い方法ですか?

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

django - Django: 2 ステップの RelatedManager

外部キーでリンクされた 3 つのモデルがあります。

そして私はできる:

「One」インスタンスから関連するすべての「Two」インスタンスにアクセスします。

「1 つの」インスタンスからすべての「3 つの」インスタンスにアクセスするカスタム マネージャーを構築するにはどうすればよいですか?

インスタンスとそのマネージャーの 1 つを指定して HTML テーブルを構築するフレームワークがあるため、これが必要です。

そのため、インスタンスで使用する「three_set」マネージャーを使用できれば問題ありません。

解決策 Three から One への ForeignKey を追加することになりました。KISSの哲学を思い出させてくれるあなたの回答に感謝します。

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

python - Django 動的モデル フィールド

一部のユーザーが (管理者を介して) 独自のデータ フィールドを定義して、フォーム内の追加データを収集し、データをレポートできるマルチテナントアプリケーションに取り組んでいます。後者のビットにより、JSONField は優れたオプションではないため、代わりに次の解決策があります。

CustomDataField に Site への ForeignKey があることに注意してください。各 Site には異なるカスタム データ フィールドのセットがありますが、同じデータベースを使用します。次に、さまざまな具体的なデータ フィールドを次のように定義できます。

これは、次の使用につながります。

しかし、特に手動で関連データを作成し、具体的なモデルに関連付ける必要があるため、これは非常に扱いにくいと感じます。より良いアプローチはありますか?

先制的に破棄されたオプション:

  • オンザフライでテーブルを変更するためのカスタム SQL。部分的にはこれが拡張できないため、部分的にはハックが多すぎるためです。
  • NoSQL のようなスキーマレス ソリューション。私は彼らに反対することは何もありませんが、それでも彼らはうまく適合していません. 最終的にこのデータ入力され、サードパーティのレポート アプリケーションを使用する可能性があります。
  • 上記の JSONField は、クエリではうまく機能しないためです。
0 投票する
1 に答える
467 参照

django - Djangoファイルのcronジョブ

djangoファイルを実行するためのCronジョブを設定したいと思います。

私が知りたいのは、django-cronがこれに適したオプションですか?つまり、使用できる他のアプリはありますか?いいえの場合、コマンドラインからdjangoファイルを実行する方法は?

次の変数を設定しました

参照されているファイルが直接インポートされているため、これらのエラーが発生し続けます

どんな助けでも大歓迎です。

カスタムコマンド

コマンドを実行しようとしたときに発生するエラーは次のとおりです。-

imit_choices_to)、AttributeError:'str'オブジェクトに属性がありません'_default_manager'

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

django - djangoカスタムマネージャーの結果の再配置

私はすべての国のリストを持っています。英語圏の国のリストを取得する必要がある場合は、次のようにします。

これはうまくいきます。ただし、私の主な焦点は北米であるため、リストの先頭に常に米国とカナダを表示させたいと思います。

ここで、カスタムマネージャーでクエリを実行し、リストから2つの国を削除して最初に挿入するか、リストを取得して再配置されたリストを返すテンプレートタグを作成する必要があります。

これを行うためにsort_byを使用できればよかったのですが、仕事を終わらせるためにいくつかの関数を上書きしてもかまいません。

サンプルコードをいただければ幸いです。

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

django - django で空のクエリセットを確認する

モデル デバイス用のカスタム マネージャーがあります。返されたクエリセットが空の場合、別のオブジェクトを返したいです。問題は、空のクエリセットが空として評価されないことです。

クエリセットが空かどうかを確認する方法を見つけるために、これらのスレッドを調べました。 Djangoで、空のクエリセットをチェックする最も効率的な方法は何ですか? Django で空のクエリセットを確認する

これは私のモデルです:

そして、これは私のマネージャーです。これらすべての if ステートメントを使用して、空かどうかを確認する方法をご覧ください。

そして、これはシェルからです。デバイス "mobile" (存在する) と "cow" (存在しない) の場合、Manager は同じ動作を示します。クエリセットの最初の値を出力しようとすると、予想される "cow" の IndexError が返されます。

ここで何が間違っていますか?クエリセットが空かどうかをマネージャーで確認するにはどうすればよいですか?

どうもありがとう :)

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

django - Django カスタム マネージャーの追加属性

次のような Django モデルがあります。

field1 は、実際には SomeObject の抽象クラスへの PK です。

関数 (all、filter、get など) によって返されるすべての値に対して、次の処理を行うカスタム マネージャーが必要です。

get を次のように手動でオーバーライドできることをテストしました。

しかし、すべての関数でそれを行う簡単な方法があるかどうか疑問に思いました.

「どうしてこんなことをしているの?」と言う人も多いでしょう。これは、レガシーであるがまだアクティブなデータベースのモデル継承に関係しています。

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

django - Django拡張オブジェクトマネージャーは「NoneType」オブジェクトに属性「_meta」を発生させません

https://docs.djangoproject.com/en/dev/topics/db/managers/#modifying-initial-manager-querysetsで説明されているように、カスタムオブジェクトマネージャーを作成しようとしています。

私はこのようなことをしています:

私はそれは何もすべきではないと思います。しかし、これを設定するだけでが発生し'NoneType' object has no attribute '_meta'ます。これはどのように可能ですか?私はこの例にかなり厳密に従っていると思います。

私がチェックしAlpha.objectsたところ、上書き前は後と同じタイプですsvGroup.objects.__class__.__bases__[0]()(したがって、実際にはサブクラスのインスタンスです)。

これは私のもっと愚かな質問の1つになるだろうと感じていますが、私はそれを理解することができません...

0 投票する
6 に答える
60266 参照

python - Django のカスタム マネージャーで DoesNotExist 例外をキャッチする

Django モデルのカスタム マネージャーがあります。ここで DoesNotExist 例外をキャッチできないようです。モデル内でそれを行う方法は知っていますが、ここでは機能しませんでした:

Get_object_or_404 も機能しません。ここで何が問題なのですか?