Модель Django с JSONField: почему я получаю CommandError при попытке выгрузить данные в XML? - PullRequest
1 голос
/ 04 апреля 2019

У меня есть модель Django с JSONField для обработки многоязычного текста следующим образом:

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, такая ошибка не появляется.

Я использую Django 2.1.4 в Ubuntu 16.04 с PostgreSQL 9.5

Есть идеи?

...