Django模型数据一致性

时间:2011-01-31 05:37:46

标签: django django-models

创建表单时,您可以定义一组方法clean_xyz,以确保数据被强制为正确的格式。有没有办法在模型级别上执行此操作?

也许我可以以某种方式覆盖字段设置者?我想要它,如果我写的东西像

my_address.postal_code = 'a1b2c3'

它会自动格式化为A1B 2C3。如果无法转换,可能会抛出异常。这样我就知道我的数据库中永远不会有任何格式错误的数据。

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

也许覆盖你的模型上的save()可能会帮助你?

def save(self, *args, **kwargs):
    # do your formatting
    self.postal_code = somefancyformattingmethod()
    # save it to the database
    super(YourModel, self).save(*args, **kwargs)