安装import-export和从管理页面导入的结果我得到了以下错误
错误:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\import_export\resources.py", line 639, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "C:\ProgramData\Anaconda3\lib\site-packages\import_export\resources.py", line 334, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "C:\ProgramData\Anaconda3\lib\site-packages\import_export\resources.py", line 322, in get_instance
self.fields[f] for f in self.get_import_id_fields()
File "C:\ProgramData\Anaconda3\lib\site-packages\import_export\resources.py", line 322, in <listcomp>
self.fields[f] for f in self.get_import_id_fields()
KeyError: 'id'from django.contrib import admin
from .models import Country
from import_export.admin import ExportActionModelAdmin, ImportExportMixin, ImportMixin
@admin.register(Country)
class CountryAdmin(ImportExportMixin, admin.ModelAdmin):
list_display = [ "country_ID", "iso_code", "cname_en" ]发布于 2020-11-18 00:21:02
发生的情况是,代码失败是因为它试图使用一个字段来查找未在资源fields列表中声明的现有对象。
在导入期间,django-import-export将尝试将每个csv行与DB表中的现有条目进行匹配-如果找到这些条目,则将执行update操作,而不是create。这是为了避免创建重复项。
默认情况下,导入逻辑查找名为id的字段。但是,看起来您还没有在fields列表中声明这个字段,或者您的模型上可能没有'id‘字段。
您也许可以使用以下命令来解决此问题:
fields - ('id',)这是假设在您的模型和数据源中有一个id字段。
docs更详细地介绍了这一点,为了理解正在发生的事情,有必要通读导入的文档化逻辑。此外,设置调试器和单步执行将节省理解任何导入问题的大量时间。
https://stackoverflow.com/questions/64871014
复制相似问题