2016-07-06 42 views
0

在我的Django模型的字段中,我希望用户在文本字段的末尾键入点('。')。否则,我想添加它。使用验证器来修改/保存字段,而不是产生错误

我想过使用验证,但现在看来,这是不这样做的正确方法:

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

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

Whay我需要的是改变文本字段的值(如果需要)不引发错误。

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

+0

的可能重复[这是验证的Django模型领域的方法是什么?(http://stackoverflow.com/questions/12945339/is-this-the-way-to-validate-django-model-字段) – Sayse

+0

在客户端,在字段的'onchange'方法或表单的'onsubmit'方法中如何执行?这可能具有用户实际添加点的额外优点。 – raphv

+0

由于这个值是goint被保存在数据库中,我更愿意在服务器端检查这个问题。无论如何,我也可以在方面检查它。 – loar

回答

0

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

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