如何使用django-import-export获得嵌套JSON导出?



我正在使用django-import-export,我想在JSON中嵌套关系。假设我使用文档(图书/作者/类别)中的示例,并且我想导出所有图书,包括作者和类别。我希望导出包含作者和类别作为对象,使其看起来像这样:

[
{
"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
}
]

我正在看文档,但我找不到如何实现这一点。我怎样才能做到呢?

编辑

我尝试这样做的原因是我们有一些模型包含我们在验收中测试的特定设置。一旦它们可以使用,我希望能够从验收中导出,然后导入到生产中。同样,我也希望能够从生产中出口,在验收中进口。

在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"}}]

相关内容

  • 没有找到相关文章

最新更新