Как получить вложенный экспорт json с помощью django-import-export?

Я использую django-import-export и хочу делать экспорт в json, в котором отношения являются вложенными. Допустим, я использую пример из документации (Book/Author/Category) и хочу сделать экспорт всех книг, включая их авторов и категории. Я бы ожидал, что экспорт будет включать авторов и категории как объекты, чтобы это выглядело примерно так:

[
    {
        "name": "Hitchhikers guide to the galaxy",
        "Author": {"name": "Douglas Adams"}
        "categories": [{"name": "Science fiction"}, {"name": "classics"}]
        "imported": true
    },
    {
        "name": "Don Quixote",
        "Author": {"name": "Miguel de Cervantes"},
        "categories": [{"name": "Idiots"}]
        "imported": true
    }
]

Я просматриваю документацию, но не могу найти, как этого добиться. Может ли кто-нибудь подсказать мне, как этого добиться?

[EDIT]

Причина, по которой я пытаюсь это сделать, заключается в том, что у нас есть некоторые модели, содержащие определенные настройки, которые мы тестируем в Acceptance. Когда они готовы, я хочу иметь возможность экспортировать их из приемки, а затем импортировать в производство. Аналогично, я также хочу иметь возможность экспортировать из производства и импортировать в приемку.

В django-import-export нет простого способа сделать это, но можно генерировать вложенные структуры данных, используя методы dehydrate().

Например, в примере приложения можно создать вложенное поле Author следующим образом:

class BookResource(ModelResource):

    class Meta:
        model = Book

    def dehydrate_author(self, book):
        author = getattr(book, "author", None)
        if author:
            return {"name": author.name}
        return dict()

В результате получится структура данных следующего вида:

[{"id": 101, "name": "Fly Fishing", "author": {"name": "J. R. Hartley"}}]
Вернуться на верх