创建表单时,您可以定义一组方法clean_xyz
,以确保数据被强制为正确的格式。有没有办法在模型级别上执行此操作?
也许我可以以某种方式覆盖字段设置者?我想要它,如果我写的东西像
my_address.postal_code = 'a1b2c3'
它会自动格式化为A1B 2C3
。如果无法转换,可能会抛出异常。这样我就知道我的数据库中永远不会有任何格式错误的数据。
答案 0 :(得分:3)
从Django 1.2开始a section in the docs that deal with the validation of models,我建议您查看Model.clean()。
答案 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)