基本上,我需要使用用户的密码哈希来通过自定义模型字段加密某些数据 . 看看我在这里使用的片段:Django Encryption .
我试过这个:
class MyClass(models.Model):
owner = models.ForeignKey(User)
product_id = EncryptedCharField(max_length=255, user_field=owner)
.................................................................................
def formfield(self, **kwargs):
defaults = {'max_length': self.max_length, 'user_field': self.user_field}
defaults.update(kwargs)
return super(EncryptedCharField, self).formfield(**defaults))
但是当我尝试使用user_field时,我得到一个ForeignKey实例(当然!):
user_field = kwargs.get('user_field')
cipher = user_field.password[:32]
任何帮助表示赞赏!
1 回答
也许是这样的 - 覆盖save()方法,你可以调用encrypt方法 .
对于解密,您可以使用signal post_init,因此每次从数据库实例化模型时,product_id字段都会自动解密
也许有一种更优雅的“pythonic”方式