2011-11-22 71 views
2

我正在研究一個允許用戶提交表單的Web應用程序。一旦表格被提交,get_db_prep_value()加密所有字段。我正在努力解決django管理應用程序中的字段的功能。解密過程工作正常,問題是在提交表單時調用to_python方法中指定的解密方法。我對to_python方法的理解是,只有在從數據庫(選擇查詢)到數據庫(更新,插入)進行數據庫查詢時才調用它。在每個數據庫查詢上調用Django to_python函數

這裏是我的自定義字段類:

class EncryptedField(models.Field): 
    # ... 

    def to_python(self, value): 
     return decrypt(value) 

    def get_db_prep_value(self, value): 
     return encrypt(value) 

我怎樣才能獲得to_python方法將只有當形式改變窗體頁上Django管理應用程序中加載叫什麼名字?

+0

當表單提交,服務器接收數據時,它需要一個對象綁定到形式 - 即獲得與從數據庫相關聯因此to_python叫你注意的對象。 –

+0

@pastylegs感謝您的回覆。只有一件事,我不明白爲什麼一個對象需要綁定到插入的表單。我可以理解更新或插入插入後,頁面會重新加載新對象的數據以供查看。這是你指的是什麼?而在我的情況下,一旦表單被提交,一個新的表單將被加載空字段。 – esfandiyar

回答