1

我有一个带有 JSONField 的 Django 模型来处理多语言文本,如下所示:

from django.contrib.postgres.fields import JSONField

def default_language_JSON():
        content = {}
        for lang in settings.LANGUAGES:
                content[lang[0]] = ''
        return content

class Entity(PolymorphicModel, ShowFieldType):
        displayedNames = JSONField(
                null = True,
                blank = True,
                verbose_name=_('Displayed names'),
                help_text= _('These names are usually created automatically'),
                default = default_language_JSON
        )
...

当我尝试转储数据时:

python3 manage.py dumpdata --natural-foreign --indent 4 --format=xml --verbosity 1 -o Database.xml

我得到错误:

CommandError: Unable to serialize database: expected string or bytes-like object

我想这可能与 JSONField 的序列化方式有关,我怀疑答案可能是应该使用的编码器(如文档中所述)

如果我尝试在 JSON 或 YAML 中转储数据,则不会出现此类错误。

我在 Ubuntu 16.04 中使用 Django 2.1.4 和 PostgreSQL 9.5

有任何想法吗?

4

0 回答 0