2011-01-31 73 views
0

創建表單時,您可以定義一堆方法clean_xyz,以確保數據被強制轉換爲正確的格式。有什麼辦法可以在模型層面上做到這一點?Django模型數據一致性

也許我可以重寫字段設置器?我想這麼說,如果我喜歡寫東西

my_address.postal_code = 'a1b2c3' 

它會自動獲得格式化成A1B 2C3。如果無法轉換,可能會拋出異常。這樣我知道我永遠不會在數據庫中有任何格式不正確的數據。

回答

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) 
+0

不是一個壞的方法。沒有考慮在保存上做這件事。 – mpen 2011-02-01 02:52:27