django モデルに保存したい 20 バイトの 16 進ハッシュがあります。テキスト フィールドを使用すると、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()
それは私が尋ねることができるのと同じくらい良いです。