- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有以下自定义字段类:
class Binary(models.Field):
__metaclass__ = models.SubfieldBase
def get_prep_value(self, value):
return encryptAES(key, iv_random, str(value))
def to_python(self, value):
return value
def db_type(self, connection):
return 'VARBINARY(900)'
这是我的模型:
class Received(models.Model):
user = models.ForeignKey(User, unique=False, editable=False)
address = Binary(blank=True)
aes_key = Binary(blank=True)
iv = Binary(blank=True)
我正在尝试使用自定义字段类来加密/解密数据。当用户提交表单时,get_prep_value 方法需要对数据进行加密。在 Django 管理界面中,我需要 to_python 方法来解密更改 View 中的数据字段。我正在考虑对 to_python 方法添加以下内容:
def to_python(self, value):
return decryptAES(aes_key?, iv?, value)
我遇到的问题是 to_python 方法单独循环每个字段的值,而我需要字段本身的值,包括字段 aes_key 和 iv 来解密数据。我不知道如何获取 aes_key 和 iv 字段,因此有问号。
希望这能解决问题。
最佳答案
根据您问题的更新,您尝试做的事情实际上并不可行。如果您希望该字段能够自动加密/解密,那么所需的所有信息都必须存储在相应的数据库字段中(请参阅@DanielRoseman的答案)。如果您的数据库遭到破坏,这基本上就否定了加密的用处。不过,我想入侵者仍然需要弄清楚如何正确地将其拼凑在一起。
绝对没有办法在多个数据库字段中存储必要的信息,但有一个字段可以将所有信息集中在一起进行解密。字段是孤立的实体。很明显,它们不允许拥有有关模型上其他字段的任何信息,因为它们可以用在模型上可能不存在这些其他字段的地方。
最好的选择是将加密值和解密所需的信息存储在标准 Django 模型字段中,并使用一种模型方法来解密该值,另一种模型方法来加密该值。
关于python - Django 自定义字段 - 从 to_python 方法获取模型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7958452/
我似乎偶然发现了 Django 自定义模型字段中的一个怪癖。我有以下自定义模型字段: class PriceField(models.DecimalField): __metaclass__
来自documentation for to_python : As a general rule, [to_python] should deal gracefully with any of th
如何确保仅在从数据库加载字段中的数据时才调用自定义字段的* to_python()*方法? 我正在尝试使用“自定义字段”来处理单个模型属性的Base64编码/解码。直到我实例化了模型的新实例并将此属性
我正在开发 Django 1.4,我有以下疑问。在 Django Admin 上解析日期之间时,格式应采用“%Y-%m-%d”格式。我刚刚检查了代码,django 模型 DateField 没有使用设
根据docs , SubfieldBase将在 1.10 中删除并替换为 from_db_value() 令我困惑的是: Note that the new approach does not cal
我正在开发一个允许用户提交表单的网络应用程序。提交表单后,get_db_prep_value() 会加密所有字段。我正在努力解决的问题是解密 django 管理应用程序中的字段的功能。解密过程工作正常
我是 Python 和 Django 的新手,也是 Stack Overflow 的新手,所以我希望我不会在这里违反任何规则,我尊重问题格式。 我在尝试使用 Django(Python 3.3.0、D
我正在尝试实现一个加密的字符字段。 我正在使用 pydes用于加密 这是我的: from pyDes import triple_des, PAD_PKCS5 from binascii import
如何从自定义 Django 模型字段的 to_python 调用访问模型实例?例如,当我覆盖 pre_save 时,我将 model_instance 作为参数之一。to_python 仅接收值。我怎
已更新 我有以下自定义字段类: class Binary(models.Field): __metaclass__ = models.SubfieldBase def get_prep
在the docs ,有一段关于to_python方法,负责反序列化值。但是推荐的序列化数据并准备好传递给小部件的方法是什么?类似于 get_db_prep_value(),但用于字段? 最佳答案 有
这是一个我无法使用文档回答的 boost.python 问题。 我有两个 C++ 类 A 和 B,这样 B 是 A 的子类,在某些条件下,类型 A 的对象可以转换为类型 B 的对象。这两个类都使用 c
我正在尝试使用 Boost.Python 将我的 C++ 类公开给 Python。这是我正在尝试做的事情的简单版本: struct Base { virtual ~Base() {};
前段时间,作为学习Python+Django过程的一部分,我决定为BIT列类型编写一个自定义的MySQL特定的模型字段。不幸的是,我遇到了一个问题。 项目:包含一个“主”应用 “主”应用程序:包含由“
从 Django 1.9 升级到 1.10 后,我发现 django-geolocation 包提供的字段的行为发生了变化。 这是为破坏行为的 1.10 兼容性所做的更改:https://github
我是 boost.python 的新手,我遇到了这个错误,我想得到一些帮助。作为一个更大项目的一部分,我正在为我拥有的 vector 类编写一个包装器。正如您从下面的代码中注意到的那样,此类可以是 2
我正在尝试使用 Boost.Python 将我的 C++ 类公开给 Python。这是我正在尝试做的简单版本: 我有一个从 boost::noncopyable 派生的类 A 和第二个类 B,其方法将
我正在将应用程序从 python 2/Django 1.4 迁移到 python 3/Django 2.1.5。我对自定义 JSON 字段有一个奇怪的行为: class JSONField(model
我是一名优秀的程序员,十分优秀!