2

我试图遵循以下官方文档import-export

https://django-import-export.readthedocs.org/en/latest/import_workflow.html#import-data-method-workflow

但我仍然不知道如何将它粘贴到我的管理员上,假设

  1. 我只想要字段的子集(我用列出的字段创建了资源模型,但是在导入时它崩溃了:KeyError下面的完整堆栈。

  2. 在哪里 -在哪种方法中 - 在我的管理类(当然继承ImportExportModelAdmin并使用 defined resource_class)中,我应该将负责我想要在验证之后发生的一些自定义操作的代码放置在导入数据正确但将它们插入数据库之前。

我在 Django 中不是很先进,并会感谢一些提示。工作实现的例子将不胜感激,所以如果你在 github 上知道类似的东西 - 分享。

4

1 回答 1

0

您可以将其覆盖为

创建一个新实例

def get_instance(self, instance_loader, row):
    return False

您的自定义保存

def save_instance(self, instance, real_dry_run):
    if not real_dry_run:
            try:
                obj = YourModel.objects.get(some_val=instance.some_val)
                # extra logic if object already exist
            except NFCTag.DoesNotExist:
                # create new object
                obj = YourModel(some_val=instance.some_val)
                obj.save()

def before_import(self, dataset, dry_run):

    if dataset.headers:
        dataset.headers = [str(header).lower().strip() for header in dataset.headers]

      # if id column not in headers in your file
    if 'id' not in dataset.headers:
        dataset.headers.append('id')
于 2015-03-27T08:14:37.820 回答