gpt4 book ai didi

python - Django-import-export - 导入高级字段?

转载 作者:太空狗 更新时间:2023-10-29 21:55:20 26 4
gpt4 key购买 nike

对于我使用的 Django 模型 django-import-export包。

如果需要导出更多的可用模型字段,如属性或自定义字段,可以使用 import_export.fields.Field 添加新的类和可选的 dehydrate_<field>方法。

from import_export import resources, fields, instance_loaders

class ProductResource(resources.ModelResource):
categories = fields.Field()
price = fields.Field(attribute='unit_price')

class Meta:
model = Product

def dehydrate_categories(self, product):
return ';'.join(
'/%s' % '/'.join([c.name for c in cat.parents()] + [cat.name])
for cat in product.category.iterator() )

它确实运行良好,但仅适用于导出。进口,逆向过程呢?是否有一些与 dehydrate_ 对应的东西?方法?

到目前为止,我已经覆盖了 get_or_init_instance方法:

class ProductResource(resources.ModelResource):
def get_or_init_instance(self, instance_loader, row):
row['unit_price'] = row['price']; row.pop('price')
return super(ProductResource, self).get_or_init_instance(instance_loader, row)

但怀疑这是不是正确的方法。

如有任何提示如何处理自定义字段的导入,我们将不胜感激。

最佳答案

您可以改写 import_obj。参见 Import workflow了解更多详情。

另一种方法是子类化 Field并覆盖 exportsave 方法,并在字段中执行所有必需的数据操作。

关于python - Django-import-export - 导入高级字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19748124/

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