Cer*_*rin 29 python django django-models django-orm django-blob
如何使用Django的ORM和PostgreSQL后端存储二进制数据的"blob"?是的,我知道Django对这种事情感到皱眉,是的,我知道他们更喜欢你使用ImageField或FileField,但这足以说明,这对我的应用来说是不切实际的.
我已经尝试使用TextField进行黑客攻击,但是当我的二进制数据没有严格确认模型编码类型(默认情况下为unicode)时,我会遇到偶然的错误.例如
psycopg2.DataError: invalid byte sequence for encoding "UTF8": 0xe22665
Run Code Online (Sandbox Code Playgroud)
Spa*_*man 26
这个片段有什么好处:
http://djangosnippets.org/snippets/1597/
这可能是在TextField中存储二进制数据的最简单的解决方案.
import base64
from django.db import models
class Foo(models.Model):
_data = models.TextField(
db_column='data',
blank=True)
def set_data(self, data):
self._data = base64.encodestring(data)
def get_data(self):
return base64.decodestring(self._data)
data = property(get_data, set_data)
Run Code Online (Sandbox Code Playgroud)
那里还有其他几个片段可能会有所帮助.
Anu*_*yal 10
我一直在使用这个简单的字段用于'mysql'后端,你可以为其他后端修改它
class BlobField(models.Field):
description = "Blob"
def db_type(self, connection):
return 'blob'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37230 次 |
| 最近记录: |