我有一個二十個字節的十六進制散列,我想在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