我有一个 20 字节的十六进制哈希,我想将它存储在 django 模型中。如果我使用文本字段,它会被解释为 unicode 并且返回乱码。
目前我正在对其进行编码和解码,这确实使代码混乱,因为我必须能够通过它进行过滤。
def get_changeset(self):
return bin(self._changeset)
def set_changeset(self, value):
self._changeset = hex(value)
changeset = property(get_changeset, set_changeset)
这是过滤的示例
Change.objects.get(_changeset=hex(ctx.node()))
这是 django 开发人员推荐的方法,但我真的很难接受仅存储 20 个字节就这么丑陋的事实。
也许我太纯粹了,但理想情况下我可以写
Change.objects.get(changeset=ctx.node())
这些属性允许我写:
change.changeset = ctx.node()
所以这就是我可以要求的。