我有一个带有 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
有任何想法吗?