ValueError:无法序列化:<myproject.storage.azurestorage object =“”at =“”0x7f85185e66d0 =“”>

时间:2015-06-27 21:27:05

标签: python django azure azure-storage azure-storage-blobs

我正在尝试使用AzureStorage来连接azure存储与django 1.7 app。

models.py

from django.db import models
from myproject.storage import AzureStorage

class MyModel(models.Model):
    my_file = models.FileField(upload_to="files", storage=AzureStorage(container="media"))
    my_image = models.ImageField(upload_to="images", storage=AzureStorage(container="media"))

但是当我尝试制作色情时,我得到了:

ValueError: Cannot serialize: <myproject.storage.AzureStorage object at 0x7f85185e66d0>
There are some values Django cannot serialize into migration files.
For more, see https://docs.djangoproject.com/en/dev/topics/migrations/#migration-serializing

究竟什么不能序列化?

1 个答案:

答案 0 :(得分:4)

您是否检查了Upgrading to Django 1.7. Getting error: Cannot serialize: <storages.backends.s3boto.S3BotoStorage object中的解决方案,这是一个类似的问题。在此处复制答案以供您快速参考:

  

这里的基本问题是你正在尝试使用Django 1.7   包(django-storages)似乎没有更新到   使用该版本。

     

以下是文档中的一些摘录,用于解释内容   发生:

     

迁移只是包含旧定义的Python文件   你的模型 - 因此,要编写它们,Django必须采用当前状态   您的模型并将它们序列化为文件。

     

虽然Django可以序列化大多数东西,但我们还有一些东西   只是无法序列化为有效的Python表示 - 就是这样   没有关于如何将值转换回代码的Python标准。

     

你可以让Django通过给出来序列化你自己的自定义类实例   一个deconstruct()方法。

     

所以这里的解决方案就是给班级   storages.backends.s3boto.S3BotoStorage一个deconstruct()方法。那   可能就像应用@deconstructible类一样简单   装饰器。

     

据推测,该软件包将在某些时候(或者   或许主分支已经拥有它?),但你也可以   自己修补。

如果解决方法(使用django.utils.deconstruct中的@deconstructible类装饰器添加deconstruct()方法),请随时告诉我们。