使用验证器修改/保存字段而不是引发错误

时间:2016-07-06 10:16:33

标签: django django-models

在我的Django模型的一个字段中,我希望用户在Textfield的末尾键入一个点('。')。否则我想添加它。

我考虑过使用验证器,但似乎这不是正确的方法:

name = models.TextField(validators=[validate_dot])

def validate_dot(value):
    if value:
        if value[-1] != '.':
            return value + '.'

我需要的是更改TextField的值(如果需要),不要引发错误。

实现它的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以覆盖模型上的save()方法。

def save(self, *args, **kwargs):
    if not self.name.endswith("."):
       self.name = self.name + "."
    super(Model, self).save(*args, **kwargs)