Djangoに辞書があり、モデルのキーといくつかの値が含まれています。私はこのモデルのフィールド(スコア)を次のように更新したいと考えています。 定数にすべてのレコードのそのフィールドを掛けて、レコードが辞書に見つかった場合は対応するdict値をフィールドに追加します。多くのレコードがあり、各オブジェクトを取得して保存するのに時間がかかります。私は、この更新クエリを試してみましたが、それが動作していません。辞書の値に基づいてDjangoのモデルを更新する
A.objects.update(score=F('score') * CONST + (dictionary[F('key')] if F('key') in dictionary else 0))
問題は、私は、問題をデバッグしようとした条件は、レコードのすべてのために偽のようだということであり、それはそうですF('key')
doesnの」目的の値(文字列)を持っていません。詳細については
、この行は正しい結果があります。
a = A.objects.get(key='key1') a.score * CONST + (dictionary[a.key] if a.key in dictionary else 0)
条件式を使用してクエリのフィールド値によって辞書値を検索する方法についてはわかりません... @ daniel-roseman – Armita
辞書を使用することはできません。代わりに、さまざまな条件を記入してください。この場合は不可能な –
です。ご協力いただきありがとうございます。 – Armita