問題タブ [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.

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

python - Djangoのモデルの逆の関係を持つすべてのクラスのセットを取得するにはどうすればよいですか?

与えられた:

クラス Food だけが与えられた場合、「逆の関係」を持つすべてのクラスのセットを取得するにはどうすればよいでしょうか。つまり、クラスFoodが与えられた場合、クラスCatCow、およびHumanを取得するにはどうすればよいでしょうか。

Food には、 Food.cat_setFood.cow_set、およびFood.human_setの 3 つの「逆の関係」があるため、可能だと思います。

助けてくれてありがとう!

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

django - Django - コンパニオン保存フィールドを持つカスタム仮想モデル フィールド

ConfirmationFieldフィールドタイプが欲しいです。このフィールドをブールフィールドのように機能させたい。この情報をデータベースに保存する必要はありません。代わりに、確認の日付を別のフィールドに保存したいと思います。

両方のフィールドをFieldインスタンスとして持つ必要があります。たとえば、それらを Admin で使用できるようにする必要があります。

ドキュメントを読んでコードを確認し、ForeignKeyデータベースの列名を次のコードで変更しました。

しかし、例として残りのコードをどのように使用できるかを正確に理解できませんでした。私の目標はそれほど複雑ではないようです。

ImageFieldモデルを保存すると、保存された追加情報も見つかりました。

もちろん、confirmationそれ自体をデータベースに保存したくありません。confirmation_timestamp( -> confirmation) None==Falseおよび<datetime instance>==であるため、冗長性が生じますTrue

任意のポインタ/アイデアをいただければ幸いです。

ありがとう。

編集:これは現在不可能のようです。APIを変更することになりました。これは、私がどのようにそれを行ったかを示すためのスニペットです。

上記の任意のタイプの確認フィールドを持つことができ、正しい値が設定されます。そして、確認チェックは で行うことができますbool(getattr(instance, field_name)

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

python - Django: デフォルトで大文字と小文字を区別しないルックアップを実行する

usernameDjango Auth フレームワークを使用する場合、デフォルトで大文字と小文字を区別しないクエリを実行する必要があります。

Queryset メソッドのカスタムサブクラスを作成してオーバーライドし、_filter_or_excludeそのサブクラスを User モデルのカスタムマネージャーで使用して、問題を修正しようとしました-

しかし、このアプローチは機能せず、実行しようとすると奇妙なエラーが発生しますUser.objects.get(username='Foo')

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

更新: 発生している正確なエラーを含めています。

更新_filter_or_exclude:ちなみに、メソッド内のロジックを実際のQuerySetクラスにコピーすると、問題なく動作することに言及したかっただけです。

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

django - Djangoでrecondsを削除するのを手伝ってください

リレーションシップテーブルのエントリを削除するにはどうすればよいですか。この場合、私はグループとユーザーの間に多対多の関係を持っています。上記のコードのdeleteステートメントは、Groupsテーブルからグループを削除します。Users_groupテーブルからユーザーとグループの関係を削除したいだけです。これを行うにはどうすればよいですか。

ありがとう

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

django - Django ORM: ForeignKey オブジェクトのキャッシュと操作

次の宇宙征服ゲームの models.py のスケルトンを考えてみましょう:

私が取り組んでいるプロジェクトには、このようなデータ モデルが多数あり、さまざまなデータ オブジェクト間のやや複雑な相互作用に基づいてゲームの状態を変更します。データベースへの多くの不要な呼び出しを避けたいので、1ターンに1回、次のようにします

  1. データベースからすべての艦隊、惑星、およびその他のオブジェクトを照会し、それらを Python オブジェクトとしてキャッシュします
  2. ゲームオブジェクトを処理し、ゲームの状態を解決する
  3. それらをデータベースに保存します

このモデルは、ForeignKey オブジェクトを使用すると完全に崩壊するようです。たとえば、新しい艦隊が惑星を出発するとき、次のような行があります。

この行が実行された後、惑星の艦隊を含む各惑星の船の数を変更する他のコードがあります。残念ながら、上記の行で行った変更は、以前に取得した惑星の QuerySet には反映されていないため、ターンの終わりにすべての惑星を保存すると、fleet.home の船への変更が上書きされます。

この状況を処理するためのより良い方法はありますか? それとも、これがすべての ORM のあり方ですか?

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

django - djangoでフィルターを使用する方法

class Status(models.Model): someid = models.IntegerField() 値 = models.IntegerField() status_msg = models.CharField(max_length = 2000)

そのため、いくつかの値の間に与えられた someid を含む値を取得する必要があります。そう言わせて

したがって、私の最終結果は、id = 20 の 2 つのエントリを含むリストであり、これを実装する方法です。

使ってみた

どれが間違っていますか?これを修正する方法。

ありがとう。

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

python - 特定のキーインスタンスを制限するDjango ORMクエリ

Projectfundingdetail には、プロジェクトへの外部キーがあります。

次のクエリは、 projectfundingdetail が 1000 未満のすべてのプロジェクトのリストを表示します。最新の projectfundingdetail のみに制限するにはどうすればよいですか。

次の関数を定義しました。

latest_fundingしかし、データベースフィールドではないため、次は使用できません

では、最新の projectfundingdetail のみが 1000 未満のすべてのプロジェクトを取得するには、どのクエリを使用すればよいでしょうか。

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

sql - Django ORMを使用して最大値に基づいて単一の子行をフェッチする

別のモデル「契約」と1対多の関係を持つモデル「市場」があります。

Market オブジェクトを、それぞれの最大価格のコントラクトと共に取得したいと考えています。これは、生のSQLを介して行う方法です。

SQLを使わずにこれを実装する方法はありますか? ある場合、パフォーマンスの観点からどちらを優先する必要がありますか?