【问题标题】:django loaddata DeserializationError: [u"'127' value must be either None, True or False."]django loaddata DeserializationError: [u"'127' value must be either None, True or False."]
【发布时间】:2012-11-11 19:55:52
【问题描述】:

在尝试加载我的数据库时,我不断收到以下回溯。我在我的生产服务器上做了一个./manage.py dumpdata appname data.json,然后在本地尝试运行./manage.py loadata

Problem installing fixture 'donor.json': Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/django/core/management/commands/loaddata.py", line 190, in handle
    for obj in objects:
  File "/Library/Python/2.7/site-packages/django/core/serializers/json.py", line 47, in Deserializer
    raise DeserializationError(e)
DeserializationError: [u"'127' value must be either None, True or False."]

在我的模型中,我所有的布尔字段都是 NullBooleanField,设置了 blank=True,null=True。我不明白这是在生气什么。我以前从未尝试过这个过程。我只是想在本地获取一份生产副本以用于测试目的。顺便说一句,我的数据库是 MySQL。

【问题讨论】:

    标签: django django-database


    【解决方案1】:

    此错误表示 Django 正在尝试将值 127 导入到 BooleanField 中,但由于 127 既不是布尔值也不是空值。

    您确定这些模型在生产和开发中是相同的吗?是否有可能在生产中,您的一个模型中的某些字段是整数,但是在开发后期您将其更改为布尔值。如果模型不相同,那么您不能只将生产中转储的固定装置导入您的开发环境。在这种情况下,您将不得不进行迁移。对于 Django,South 是一个很好的工具。

    【讨论】:

    • 如何查看 127 试图进入的位置。我删除了本地数据库模式并创建了一个新模式,将我的 models.py 的副本从生产服务器下载到本地机器。然后我运行 syncdb 来创建我所有的表。当我尝试加载数据时,我得到了同样的错误,但这次它抱怨的是 None 而不是 127
    • 这很奇怪。不知道如何诊断。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 2015-04-17
    • 2021-07-02
    相关资源
    最近更新 更多