lok*_*oki 2 django django-models validationerror django-1.4
我有一个django模型,其中包含一个字段,我想在更新后总是比同一个模型实例中的前一个更大,如下所示:
class MyModel(models.Model):
version = models.FloatField()
prev_value = 0
def clean(self):
if self.version <= self.prev_value:
raise ValidationError('error msg')
def save(self,*args,**kwargs):
super(MyModel, self).save(*args, **kwargs)
self.prev_value = self.version
Run Code Online (Sandbox Code Playgroud)
我知道干净工作正常,因为我已经对同一个方法进行了其他验证,它工作正常,我做错了什么,我该如何解决?提前致谢.
我测试了它并且它没有在verion <prev_value的更新上抛出任何错误消息
编辑:即时通讯使用新的Django 1.4
模型子类实际上最终有一个元类重新格式化所有类属性.因此,您不应该将普通值初始化为类属性.你应该在__init__
class MyModel(models.Model):
version = models.FloatField()
def __init__(self, *args, **kwargs):
super(MyModel, self).__init__(*args, **kwargs)
self._prev_value = self.version
def clean(self):
if self.version <= self._prev_value:
raise ValidationError('error msg')
def save(self,*args,**kwargs):
super(MyModel, self).save(*args, **kwargs)
self._prev_value = self.version
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2101 次 |
| 最近记录: |