自定义字段的 to_python 不起作用? - 姜戈

2024-04-10

我正在尝试实现一个加密的字符字段。


我在用着pydes http://twhiteman.netfirms.com/des.html用于加密

这就是我所拥有的:

from pyDes import triple_des, PAD_PKCS5
from binascii import unhexlify as unhex
from binascii import hexlify as dohex

class BaseEncryptedField(models.CharField):

    def __init__(self, *args, **kwargs):
        self.td = triple_des(unhex('c35414909168354f77fe89816c6b625bde4fc9ee51529f2f'))
        super(BaseEncryptedField, self).__init__(*args, **kwargs)

    def to_python(self, value):
        return self.td.decrypt(unhex(value), padmode=PAD_PKCS5)

    def get_db_prep_value(self, value):
        return dohex(self.td.encrypt(value, padmode=PAD_PKCS5))

该字段已成功加密保存到数据库中

但退休时它不会打印出解密版本


有任何想法吗?


您忘记设置元类:

class BaseEncryptedField(models.CharField):

    __metaclass__ = models.SubfieldBase

    ... etc ...

As 文档解释了 http://docs.djangoproject.com/en/1.2/howto/custom-model-fields/#the-subfieldbase-metaclass, to_python仅在使用 SubfieldBase 元类时调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义字段的 to_python 不起作用? - 姜戈 的相关文章

随机推荐

  • 如何通过 Facebook Graph Api 获取用户的朋友在生日当天在用户墙上发布的帖子?

    我正在尝试构建一个 Chrome 扩展程序 我想获取人们专门在用户生日那天发布在用户墙上的所有帖子 我尝试通过 Facebook Javascript SDK 进行调用 但它没有返回我的朋友在生日那天发布的帖子 FB api me feed
  • 使用 Owin.Testing 时获取远程 ip

    我使用 Owin Testing 作为测试环境 在我的控制器中 我需要从调用者那里获取远程 IP 地址 in my controller method var ip GetIp Request Util private string Get
  • Java mp4parser片段序列不连续性

    此用例是一项服务 手动将一系列未压缩的 wav 媒体片段编码为 m4s 片段 以便通过 MPEG DASH 广播 使用 ffmpeg 将 wav 压缩为 aac 并使用 sannies mp4parser 将 aac 音频组装为 m4s 片
  • Mocha 如何知道在测试套件中首先加载哪个文件

    我正在尝试学习 MongodB 的测试驱动方法 文件夹结构 A user js在src文件夹中测试 const mongoose require mongoose mongoose Promise require bluebird cons
  • 异常信息:System.Reflection.TargetInitationException

    我正在开发 WPF 应用程序 仅在单个设备上运行时收到此错误 Exception Info System Reflection TargetInvocationException 我的问题 有什么线索可能导致此错误吗 知道如何在发布模式下调
  • 核心数据同步

    有没有办法自动将我的核心数据模型与服务器同步 最好是 REST Thanks 苹果已经分享了他们的同步服务框架 记录如下 http developer apple com documentation Cocoa Conceptual Syn
  • 了解 C++ 内存模型:不同运行时的不同值

    下面的代码有什么问题 我预计消费者 1 和消费者 2 会生成 10 个 但有时会看到 1 include
  • 画布和输入映射

    我正在用 Java 构建一个 2d 游戏 我决定使用 Canvas 在上面显示与当前帧相关的图像 我使用 Canvas 是因为我听说它在时间方面比 JPanel 更高效 这是真的吗 另外 我想通过以下方式向游戏添加一些输入键绑定因为关键听众
  • 在迭代器上使用 map()

    假设我们有一张地图 let m new Map using m values 返回一个地图迭代器 但我不能使用forEach or map 在该迭代器上并在该迭代器上实现 while 循环似乎是一种反模式 因为 ES6 提供了类似的函数ma
  • 如何使用 Caliburn.Micro 将源 MediaCapture 绑定到 CaptureElement?

    在 Windows Phone 8 1 上 我使用 Caliburn Micro 视图模型优先方法 但由于视图模型无法了解视图的任何信息 因此我看不到如何将 MediaCapture 对象绑定到视图中的 CaptureElement 我有同
  • Flutter pub get 执行时间太长

    当在 Vscode 中运行新应用程序 flutter pub get 时 它会持续运行但未完成 我尝试过 flutter clean 然后重新打开 vscode Try 扑干净命令 同时删除pubspec lock然后将文件放在根目录中re
  • 使用 Python/(GAE) 为 Android 应用程序推送通知的服务器端实现 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 从哪里 有用的链接 开始 我需要基础
  • Perl 6 可以根据排序规则进行排序或比较吗?

    The cmp操作员 https docs perl6 org language operators infix cmp适用于代码编号 或者至少我认为它是这样做的 因为文档对此没有明确说明 并且没有提及任何本地化内容 我可以按照其他排序规则
  • “扁平比嵌套更好”——对于数据和代码? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 This https stackoverflow com questions 4372073 traversing and modifying
  • s3fs 将 Amazon S3 存储桶挂载为本地目录的稳定性如何 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 s3fs 在 Linux 中将 Amazon S3 存储桶挂载为本地目录的稳定性如何 对于高要求的生产环境是否推荐 稳定 有更好 类似的解决方案
  • 更改 Firefox 拼写检查默认语言

    Firefox 开始相信我的默认拼写检查语言应该是西班牙语 我的全球偏好选择了英语 首选项 gt 内容 gt 语言 gt 英语 en 我可以通过以下方式逐页重置拼写检查器语言 右键单击 gt 语言 gt 英语 美国 但是 对于新打开的页面或
  • 如何修复 Jackson java 8 数据/时间错误?

    Java 8 date time type java time LocalDateTime not supported by default add Module com fasterxml jackson datatype jackson
  • 无法在管道中多次检出同一存储库

    我在多个环境中拥有自托管代理 我试图在这些环境上运行相同的构建 部署进程 我希望能够将相同的代码从单个存储库同时部署到多个系统 因此 我创建了一个 开销 管道和几个 流程 管道模板 一切似乎都进展顺利 除了当我尝试在同一管道执行中两次执行同
  • 多个枚举实现协议问题

    我将枚举定义为确认协议可事件 protocol Eventable var name String get static var all Eventable get enum MyEnum String Eventable case bla
  • 自定义字段的 to_python 不起作用? - 姜戈

    我正在尝试实现一个加密的字符字段 我在用着pydes http twhiteman netfirms com des html用于加密 这就是我所拥有的 from pyDes import triple des PAD PKCS5 from