我有一个二十个字节的十六进制散列,我想在django模型中存储。 如果我使用文本字段,它将被解释为unicode,并且它回来乱码。在Django模型字段中存储二进制散列值
目前我正在对它进行编码并对它进行解码,这实际上使代码更加混乱,因为我必须能够通过它进行过滤。
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开发的办法,但我真的努力达成协议的事实,这是这个丑陋的只是存储二十个字节。
也许是我太纯粹的,但最好我能写
Change.objects.get(changeset=ctx.node())
性能让我写:
change.changeset = ctx.node()
所以这是一样好,我可以问。
n.b.尽管这个答案已经四年了,但BinaryField并没有在Django(1.5)的最新版本中,而是在当前的开发版本中。 – 2013-03-28 22:40:42