我有一个带有版本号的模型。id
当新数据通过 TastyPie与现有数据一起发布时,我希望它自增。我目前正在通过 hydrate 方法执行此操作,只要两个用户不尝试一次更新即可:
class MyResource(ModelResource):
...
def hydrate_version(self, bundle):
if 'id' in bundle.data:
target = self._meta.queryset.get(id=int(bundle.data['id']))
bundle.data['version'] = target.version+1
return bundle
我想通过使用Django 的 F() 表达式来更稳健地做到这一点,例如:
def hydrate_version(self, bundle):
if 'id' in bundle.data:
from django.db.models import F
target = self._meta.queryset.get(id=int(bundle.data['id']))
bundle.data['version'] = F('version')+1
return bundle
但是,这给了我一个错误:
TypeError: int() argument must be a string or a number, not 'ExpressionNode'
有没有办法用 TastyPie 更稳健地增加版本号?
谢谢!