【发布时间】:2016-02-11 10:29:43
【问题描述】:
我将 Django 与旧版 Oracle 数据库一起使用。在这个数据库中是一个保存为 blob 的数组,我想用 Django 读取它。 Model 类是使用manage.py inspectdb 命令自动创建的。
class myTable(models.Model):
myRow = models.BinaryField(blank=True, null=True)
如何将二进制字段转换为数组?
谢谢。
【问题讨论】:
-
您可以使用 Django 的 model_to_dict 来获取 dict 中的模型数据,然后将 dict 转换为列表/数组。 from django.forms.models import model_to_dict, model_to_dict(instance, fields=['myRow',( + 您要包含的其他字段)]
-
我试过了,model_to_dict 返回了一个空字典。存储在字段中的数据是二进制编码的。这个函数现在应该怎么做 什么是键或值?
-
它应该返回一个以字段名/对象为键、字段值作为其值的字典。如果您有多个字段,它会返回一个 multiplekeydict。如果应该返回的字段中有数据,请尝试没有字段列表的代码,请参阅文档docs.djangoproject.com/en/1.8/_modules/django/forms/models。第二种选择是过滤,它也返回一个类似的字典 models_to_dict; filters_dict =myTable.objects.values('myRow')
-
从 django.forms.models 导入 model_to_dict,在视图中; instance = myTable(),打印 model_to_dict(instance),返回 {u'myRow': ..fieldcontent}
标签: python arrays django oracle blob