問題タブ [django-orm]
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 - Django:select_relatedとGenericRelation
select_relatedはGenericRelationリレーションに対して機能しますか、それとも合理的な代替手段がありますか?現時点では、Djangoはクエリセット内の各アイテムに対して個別のSQL呼び出しを行っていますが、select_relatedのようなものを使用することは避けたいと思います。
多数のクレームを選択していますが、個別にクエリするのではなく、関連するプルーフをプルインしたいと思います。
python - Django:月/年でグループ化された日付属性の合計
このクエリを SQL から Django に入れたいと思います:
問題となる部分は、集計時に月ごとにグループ化することです。私はこれを試しました(論理的に見えました)が、うまくいきませんでした:
python - Django の raw() クエリ関数から結果の数を取得します
生のクエリを使用していますが、返される結果の数を取得する方法がわかりません。方法はありますか?
編集
.count() は機能しません。戻り値: 「RawQuerySet」オブジェクトには属性「count」がありません
python - Django QuerySet フィルター + order_by + 制限
テスト結果を処理する Django アプリがあり、特定の評価の中央値を見つけようとしています。私はこれがうまくいくと思います:
しかし、常に空のリストを返します。私はこれで私が望む結果を得ることができます:
一連の試験全体を照会する必要はありません。次のような生のMySQLクエリを書くことを考えました:
しかし、可能であれば、Django の ORM 内にとどまりたいと思っています。ほとんどの場合、フィルターと制限を指定して order_by を使用できないように見えるのは、私を悩ませているだけです。何か案は?
python - Django ORM と PostgreSQL の接続制限
Postgresql 8.1.21 で Django プロジェクトを実行しています (Django 1.1.1、Python2.5、psycopg2、Apache2 と mod_wsgi 3.2 を使用)。最近、この素敵なエラーが発生しました:
OperationalError: FATAL: connection limit exceeded for non-superusers
私はこれに立ち向かう最初の人ではありません。このエラーについては、特に psycopg で多くの議論がありますが、その多くは古いバージョンの Django に焦点を当てているか、Django 自体のコードの編集を含む解決策を提供しています。Django ORM (または、この場合は psycopg のいずれか、実際に責任がある方) が Postgre 接続を開いたままにする問題を解決する方法の簡潔な説明をまだ見つけていません。
すべてのビューの最後に追加するだけconnection.close()
で、この問題は解決しますか? さらに良いことに、この問題を決定的に解決し、このエラーのお尻を蹴った人はいますか?
編集: 後で Postgresql の制限を 500 接続に引き上げました。これにより、エラーが発生するのを防ぎましたが、過剰なメモリ使用量に置き換えられました。
django - django 1.2で異なるdbデータベースを持つ複数のdjango管理者 - 奇妙な問題
マルチサイトショップを作成するためにdjango 1.2を使用しています。ショップインスタンスごとに複数の管理者ログインが必要です。
site.com/au/admin
site.com/uk/admin
など。
URL に基づいてデータベース接続を処理するミドルウェア クラスと dbrouter があります。これはうまくいきます。
その特定のショップで利用できるものに基づいて、管理システムごとにいくつかのカスタマイズを追加しようとしています. そう:
admin.py :
国 == 'au' の場合:
admin.site.register(注文)
admin.site.register(支払い)
if country == 'uk':
admin.site.register(Store_locator)
など
彼女の問題: サイトの AU バージョンにログインすると、管理システムは AU の正しい要素を表示します。その後、英国にログインすると、引き続き管理システムの AU バージョンが表示されるため、上記のコードは最初のロードでのみ使用されるようです。djangoサーバーを強制終了して再起動し、別のショップ管理ページに移動すると、そのショップ用に再構成されます.
管理システムが読み込まれるたびに国の変更を取得するにはどうすればよいですか? そもそもなぜこの問題が発生するのでしょうか。
どんな助けでも大歓迎です。
ありがとう、イマンク
sql - Postgresql ダンプは最後のキーで始まるシーケンスを作成しますか?
最近、Django プロジェクトの背後にあるデータベースの SQL ダンプを作成しました。SQL を少しクリーンアップした後、DB とすべてのデータを復元することができました。問題は、シーケンスがすべてめちゃくちゃだったことです。新しいユーザーを追加しようとしたところ、Python エラーが発生しましIntegrityError: duplicate key violates unique constraint
た。
当然のことながら、SQL ダンプがシーケンスを再開しなかったと考えました。しかし、それはしました:
ユーザー(または既存のデータとそのようなシーケンスを持つテーブルの新しい行)の作成を繰り返し試行すると、オブジェクト/行の作成が成功することがわかりました。それは差し迫った問題を解決しました。
しかし、そのテーブルの最後のユーザー ID が 446 (上記のシーケンス作成の開始値と同じ) であることを考えると、Postgresql は単にそのキーを使用して行の作成を開始しようとしていたように見えます。
SQL ダンプは間違った開始キーを 1 ずつ提供していますか? または、指定された開始 ID の後にシーケンスを開始するために、他のコマンドを呼び出す必要がありますか? 好奇心旺盛。
python - Django:外部キーごとに1つのフィルタリングされたオブジェクトを返します
外部キーごとに 1 つのオブジェクトのみを返すクエリセットを返すことは可能ですか?
たとえば、django_comments から最新のコメントを取得したいのですが、オブジェクトごとに 1 つのコメント (最新のコメント) だけが必要です。つまり、オブジェクトの最新のコメントのみを返し、そのオブジェクトの過去のすべてのコメントを除外します。これは、django_comments.content_type と django_comments.object_pk の sql group_by に似ていると思います。
++追加情報++
最終的な目標は、最新のコメントを持つスレッドによって表示/順序付けされたアクティブなコメント「スレッド」のリストを作成することです。これは、トピックが最近のアクティビティによってリストされている標準的なディスカッション掲示板と同じです。
これを行う最善の方法は、最新のコメントを取得し、それらをコンテンツ タイプと object_pk で並べ替えまたはグループ化して、関連するコンテンツ オブジェクトごとに 1 つのコメント (最新) のみが返されるようにすることだと思います。次に、そのコメントを使用して必要なすべての情報を取得できます。つまり、コメントを取得して pk をフォローしているだけなので、スレッドという単語は大まかに使用されます。
MODEL は django_threadedcomments で、これは django_comments を拡張し、ツリー、子、および親用のフィールドがいくつか追加されています。
見る:
...これは、親のすべてのインスタンスを含むすべてのコメントを返します
...そしてこれは理想的です
テンプレート:
再度、感謝します!
sql - unique_together(max_occurences=3) のようなものはありますか?
私はモデルを持っています:
ここで、上記のモデルに制約のようなものを追加する必要があります((a,b) の各ペアに対してunique_together(a,b, max_occurences=3)
最大 3 つの値が存在できるようにするため、理想的には、これらの 3 つの値も特定の (a,b) に対して一意である必要があります)。 b))、しかし、何を探すべきかわかりません (そして、このようなものが MySQL に存在するかどうか)。そのようなことはありますか、または私はこのようなことをしなければなりません:c
c
-- そして c1..c3 を自分で処理しますか?
django - Django ORM は PostgreSQL シーケンスを読み違えていますか?
背景: Django アプリ (Django 1.1.1、Python2.4、psycopg2、および Postgres 8.1) 用の PostgreSQL データベースの実行 SQL ダンプからデータベースを数回復元しました。それを行ってから、シェル、管理者、またはサイトフロントエンドのいずれかで新しい行を追加しようとするたびに、次のエラーが発生します。
IntegrityError: duplicate key violates unique constraint "app_model_pkey"
データ ダンプは問題なく、シーケンスをリセットしています。しかし、もう一度行を追加しようとすると、成功します! したがって、すべてのテーブルに新しい行を詰め込むだけで、すべてが調和しているように見えます。
質問: (1) SQL ダンプが良好で、Postgres がそれを正しく読み込んでおり (以前の質問による)、(2) Django の ORM がシステム的に次の値を取得することに失敗していないように見える場合、この特定のインスタンスで何が起こっているのか?