DjangoF()
式で割り当てられたフィールドが検証に失敗することを発見しました。Django doc の例を変更しました:
>>> product = Product.objects.get(name='Venezuelan Beaver Cheese')
>>> product.number_sold = F('number_sold') + 1
>>> product.full_clean() # My addition.
>>> product.save()
そして、私は得ています: ValidationError: {'number_sold': [u"'(+: (DEFAULT: ), 0)' value must be an integer."]}
. 実際、販売数は整数ではなく、 のインスタンスですdjango.db.models.expressions.ExpressionNode
。
これを回避する方法はありますか?私のモデルはすべて、full_clean()
保存のたびに自動的に呼び出される基本クラスを拡張します。私はこの基本クラスを維持したまま、アトミックな更新を使用できるようにしたいと考えています。