Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django管理导入\用于自定义导入的导出模块_Python_Django_Csv_Django Admin_Django Import Export - Fatal编程技术网

Python Django管理导入\用于自定义导入的导出模块

Python Django管理导入\用于自定义导入的导出模块,python,django,csv,django-admin,django-import-export,Python,Django,Csv,Django Admin,Django Import Export,我正试图遵循进出口部的官方文件: 但是我仍然不知道如何将它粘贴到我的管理员上,假设: 我只需要字段的子集(我用列出的字段创建了资源模型,但它在导入时崩溃了,下面是:KeyErrorfull stack) 其中-在哪个方法中-在我的管理类中(当然继承ImportExportModelAdmin并使用已定义的资源类)我是否应该将负责某些自定义操作的代码放置在验证之后,即导入数据是正确的,但在将数据插入数据库之前 我在Django的水平不是很高,如果能得到一些提示,我将不胜感激。 如果您知道gith

我正试图遵循进出口部的官方文件:

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

  • 我只需要字段的子集(我用列出的字段创建了资源模型,但它在导入时崩溃了,下面是:
    KeyError
    full stack)

  • 其中-在哪个方法中-在我的管理类中(当然继承
    ImportExportModelAdmin
    并使用已定义的
    资源类
    )我是否应该将负责某些自定义操作的代码放置在
    验证之后,即导入数据是正确的,但在
    将数据插入数据库之前

  • 我在Django的水平不是很高,如果能得到一些提示,我将不胜感激。 如果您知道github-share上类似的内容,我们将不胜感激。

    您可以将其改写为

    创建新实例的步骤 您的自定义保存
    1.请在堆栈后跟踪,可能有一些输入错误2.在resource_类中,您可以覆盖一些方法(在import_workflow中列出),这些方法是带着相关问题到达这里的,但我能告诉您的最好情况是添加
    “id”
    标题
    不会实例化空白列,并导致
    导入_导出
    创建新记录并自动递增整数pk。添加一整列
    值会起作用(
    数据集。追加列([None for row in range(len(dataset)),标题='id'
    ),尽管这可能不是最优雅的解决方案。
    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')