使用django1.8.5和Django money 0.7.4,我希望使用F表达式更新MoneyField,以避免可能的竞争条件。假设我的钱包定义为
from moneyed.classes import Money
from django.db.models import F
from django.db import models
from djmoney.models.fields import M0oneyField
class Wallet(models.Model):
balance = MoneyField(max_digits=5, decimal_places=2, default_currency='EUR')
以下填充钱包的代码失败,AttributeError: 'CombinedExpression' object has no attribute 'children'
我还尝试了wallet.balance.amount = F("balance__amount") + 3
,它不会立即抛出异常,但随后的wallet.save()
失败,并返回{
你试过给它一个浮点数而不是一个整数吗?尝试:
wallet.balance.amount = F("balance__amount") + float(3)
我不知道为什么他们的代码不自动尝试将整数转换成浮点数,如果这是它所需要的。在
因为
django-money
0.7.7支持所有基本的F
对象操作。 它适用于django1.4+。在相关问题 更多 >
编程相关推荐