ValueError: Cannot serialize: <myproject.storage.AzureStorage object at 0x7f85185e66d0>

Ash*_*pta 1 python django azure azure-storage azure-storage-blobs

I am trying to use AzureStorage to for connecting azure storage with 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"))
Run Code Online (Sandbox Code Playgroud)

But when I try to makemigrations I am getting :

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
Run Code Online (Sandbox Code Playgroud)

What exactly its not able to serialize ?

Min*_*SFT 5

您是否检查了从升级到 Django 1.7的解决方案获取错误:无法序列化:<storages.backends.s3boto.S3BotoStorage object这是之前问过的类似问题。在此处复制答案以供您快速参考:

这里的基本问题是您试图将 Django 1.7 与一个包 (django-storages) 一起使用,该包似乎尚未更新以使用该版本。

以下是文档中的一些摘录,以解释正在发生的事情:

迁移只是包含模型旧定义的 Python 文件 - 因此,要编写它们,Django 必须获取模型的当前状态并将它们序列化到一个文件中。

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

您可以通过为类提供 deconstruct() 方法,让 Django 序列化您自己的自定义类实例。

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

据推测,该软件包将在某个时候包含此更改(或者主分支可能已经有了它?),但您也可以自己修补它。

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