我正在开发一个允许用户提交表单的网络应用程序。提交表单后,get_db_prep_value() 会加密所有字段。我正在努力解决的问题是解密 django 管理应用程序中的字段的功能。解密过程工作正常,问题是在提交表单时调用了 to_python 方法中指定的解密方法。我对 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 管理应用程序中时被调用?
请您参考如下方法:
“Field 上的 to_python() 方法是每次验证的第一步。”
