我正在使用oracle legacy DB,需要读取和写入二进制数据(png图像和MDL Molfiles)。 Django的inspectdb命令为这些列生成了文本字段,说这只是猜测。 现在,当我尝试从此类字段中检索值时,我得到: DjangoUnicodeDecodeError:'utf8'编解码器无法解码位置0的字节0x89:无效的起始字节。 错误。
有没有办法读取和写入这些列? 任何帮助将不胜感激。
答案 0 :(得分:0)
class BlobField(models.TextField):
description = "Stores raw binary data"
__metaclass__ = models.SubfieldBase
def __init__(self, *args, **kwds):
kwds = _adjust_keywords(kwds)
super(BlobField, self).__init__(*args, **kwds)
def get_internal_type(self):
return "BlobField"
def get_db_prep_value(self, value, connection=None, prepared=False):
return value
def to_python(self, value):
return Blob(value)