ルックアップからの値を使用して、モデル内のフィールドのバッチ更新を実行する方法があるかどうかを知りたいです。
次のモデルを想定します。
class Product(models.Model):
price = models.DecimalField(... field params here ...)
... more fields here ...
class ShopcartProductEntry(models.Model):
oncommit_price = models.DecimalField(
... field params here, similar to price params ...)
quantity = models.IntegerField(... field params, doesn't matter here ...)
product = models.ForeignKey(Product, null=False)
shopcart = models.ForeignKey(
Shopcart, null=False, related_name='entries', ... more params ...)
class Shopcart(models.Model):
... fields here ...
def commit(self):
pass #my question will come in this method
ドキュメントが言うように、私が書くと:
def commit(self):
self.entries.update(oncommit_price=F('product__price'))
ジャンゴが泣く。どうすればそのクエリを実行できますか? 現在、各エントリを繰り返し処理しています。私はそれが好きではありません。