Tôi có băm hex mười hai byte mà tôi muốn lưu trữ trong mô hình django. Nếu tôi sử dụng một trường văn bản, nó được hiểu là unicode và nó trở lại bị cắt xén.Lưu trữ giá trị băm nhị phân trong trường mô hình Django
Hiện tại tôi đang mã hóa và giải mã nó, điều này thực sự làm lộn xộn mã, bởi vì tôi phải có khả năng lọc theo nó.
def get_changeset(self):
return bin(self._changeset)
def set_changeset(self, value):
self._changeset = hex(value)
changeset = property(get_changeset, set_changeset)
Dưới đây là một ví dụ cho việc lọc
Change.objects.get(_changeset=hex(ctx.node()))
Đây là phương pháp được khuyến cáo của một nhà phát triển django, nhưng tôi thực sự đấu tranh để đi đến thỏa thuận với thực tế là nó này xấu xí chỉ lưu trữ hai mươi byte.
Có lẽ tôi quá nhiều của một purist, nhưng lý tưởng tôi sẽ có thể viết
Change.objects.get(changeset=ctx.node())
Các thuộc tính cho phép tôi viết:
change.changeset = ctx.node()
Vì vậy, đó là tốt như tôi có thể hỏi.
n.b. mặc dù câu trả lời này là bốn tuổi, BinaryField không có trong bản phát hành mới nhất của Django (1.5) nhưng có trong phiên bản phát triển hiện tại. –