我正在尝试使用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
究竟什么不能序列化?
答案 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()方法),请随时告诉我们。