update()ではなく、save()メソッドを使用して2つのオブジェクトを更新する必要があります。 モデルをクエリーセットにキャストすることは可能ですか?モデル値に応じてdjangoモデルをクエリセットに/動的関数呼び出しで更新する
objects = Article.objects.all()
ctype = ContentType.objects.get_for_model(Article)
objects.update(stats=process_data(F('id'), ctype))
process_dataが記事にrelatif他のオブジェクトを取得し、計算後floatを返します:
def process_data(object_id, content_type):
counts = Counter.objects.get(content_type=content_type, object_pk=object_id)
...
return float(calculation_based_on_counts)
残念ながら、これは不可能です
は、そうでなければ、私のようなものを試してみました。私はMultipleObjectsReturned例外を取得します:counter.models.MultipleObjectsReturned:get()が複数返されました - カウンタが15を返しました!検索パラメータは{'object_pk':、 'content_type':}
ありがとうございました!
私の計算は、私の記事モデルに関連するカウンタモデルに基づいていますが、これはまさに問題です。アグリゲーションはありませんが、関連付けられていないカウンタ値を使用するアルゴリズムなどがあります。集合体を渡すことはできません。とにかくあなたの答えをありがとう! – ScotchAndSoda