gpt4 book ai didi

django - 自定义 ModelResource 中的字段以下载数据

转载 作者:行者123 更新时间:2023-12-02 21:12:25 27 4
gpt4 key购买 nike

使用 Django Import/Export library ,我目前正在使用以下代码创建一个资源,可用于从 Django 项目下载多种格式的数据(例如 csv、excel、json 等):

从 import_export 导入资源

class Resource1(resources.ModelResource):
class Meta:
model = Person
fields = ('First_Name', 'Last_Name')

resource = Resource1()
dataset = resource.export(queryset)

我现在正在创建具有不同属性(例如不同字段)的资源的多个版本。是否可以动态更改 Meta(或 _meta),以便使用所需的属性创建它?

class Resource2(resources.ModelResource):
def __init__(self, fields):
self.Meta.fields = fields
# self._meta.fields = fields
class Meta:
model = Person

resource = Resource2(['First_Name', 'Last_Name', 'Address'])
dataset = resource.export(queryset)

当我尝试此操作时,下载的结果是空的。

最佳答案

我找到了一种直接的方法来动态更改类实例的内部 class Meta 部分中的字段。下面的 create_resource 函数根据需要创建该类的自定义版本,然后返回一个实例:

def create_resource(django_model, model_fields):
class model_resource(resources.ModelResource):
class Meta:
model = django_model
fields = model_fields
return model_resource()

resource = create_resource(Person, ['First_Name', 'Last_Name', 'Address'])

然后我可以使用该资源导出数据:

dataset = resource.export(queryset)

关于django - 自定义 ModelResource 中的字段以下载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32739807/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com