Django Admin import_export模块用于自定义IMPORT

时间:2014-03-26 08:34:55

标签: python django csv django-admin django-import-export

我试图遵循import-export的正式文件:

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

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

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

  2. 其中 - 在哪种方法中 - 在我的管理类中(继承当前ImportExportModelAdmin并使用已定义的resource_class)我应该将代码放在某个自定义上我希望在验证后发生的操作,导入数据是正确的,但之前将它们插入数据库。

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

1 个答案:

答案 0 :(得分: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')