Ich habe einen 20-Byte-Hex-Hash, den ich in einem Django-Modell speichern möchte. Wenn ich ein Textfeld verwende, wird es als Unicode interpretiert und es kommt verstümmelt zurück.Speichern eines binären Hash-Werts in einem Django-Modellfeld
Derzeit bin ich es codieren und Decodierung, die wirklich den Code überfüllt, , weil ich in der Lage sein, durch sie zu filtern.
def get_changeset(self):
return bin(self._changeset)
def set_changeset(self, value):
self._changeset = hex(value)
changeset = property(get_changeset, set_changeset)
Hier ist ein Beispiel für die Filterung
Change.objects.get(_changeset=hex(ctx.node()))
Dies ist der Ansatz, der von einem django Entwickler empfohlen wurde, aber ich bin wirklich kämpfen mit der Tatsache abfinden, dass es dieses hässlichen ist nur speicher zwanzig Bytes.
Vielleicht bin ich zu viel von einem puristischen, sondern im Idealfall würde ich in der Lage sein zu schreiben
Change.objects.get(changeset=ctx.node())
Die Eigenschaften erlauben Sie mir, schreiben Sie an:
change.changeset = ctx.node()
Damit so gut wie ich kann, Fragen.
n.b. Obwohl diese Antwort vier Jahre alt ist, befindet sich BinaryField nicht in der neuesten Version von Django (1.5), sondern in der aktuellen Entwicklungsversion. –