2010-01-30 33 views
0

我的數據存儲格式與顯示格式不同。
我已經在表單的clean_weight()方法中進行了從表單到數據的轉換,這使我可以在保存之前正確格式化數據。如何在Django窗體構造函數中驗證「實例」MyForm(instance = myInstance)

現在我假裝在表單顯示之前操作實例重量,但是我沒有看到在表單代碼中執行此操作的好地方。

我有2個方案,我知道:

  • 創建構造和照顧的是轉換的存在。它對我來說並不好看,因爲一旦你定義了構造函數,它就是爲所有可能的構造函數調用(不僅是對於實例= 1),而且只針對表單的1或2個字段,我更喜歡另一種解決方案。
  • 不這樣做的形式代碼,把它放在我使用的每個視圖,看起來不舒服,再次導致我需要在幾個地方做到這一點,我需要從窗體中刪除clean_weight以保持它一致的,所以我需要把這兩個操作放在我使用表單的每個視圖中。

對於那些2的那一刻,看起來更好的那個是構造函數,但是對我來說很臭。
任何提示?

回答

1

自定義表單字段是你所需要的 - 簡單,乾淨,可重複使用的任何形式。甚至可能是自定義模型領域,但這取決於你。

+0

是的。創建類似WeightField的東西。把所有時髦的轉換放在那裏一次,而不要再考慮一次。如果這是第一次製作自定義字段,它可能看起來令人望而生畏。 *只要做就可以了。* :)你甚至可以做一些事情,比如爲你想出現的單位添加參數,真正給你一個乾淨,實用,可重複使用的工具,很高興使用vis-a-vis在代碼中分散轉換。 – Koobz 2010-01-31 01:19:03