在django导入导出中上载源文件时添加主键
我正在使用在django导入导出中上载源文件时添加主键,django,django-import-export,Django,Django Import Export,我正在使用django import-export将数据从csv/excel表格导入到我的模型中 这是我的代码: models.py class Client(models.Model): name = models.CharField(max_length=255) def __str__(self): return self.name class Client(models.Model): name = models.CharField(m
django import-export
将数据从csv/excel表格导入到我的模型中
这是我的代码:
models.py
class Client(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
return self.name
class Client(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
return self.name
管理员
class ClientResource(resources.ModelResource):
class Meta:
model = Client
@admin.register(Client)
class ClientAdmin(ImportExportModelAdmin):
resource_class = ClientResource
class ClientResource(resources.ModelResource):
class Meta:
model = Client
fields = ('id','name')
@admin.register(Client)
class ClientAdmin(ImportExportModelAdmin):
resource_class = ClientResource
然而,在上传时,我收到一个错误,它表明:
File "\venv\lib\site-packages\import_export\instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: 'id'
据我所知,这是因为我的excel工作表中没有作为主键字段的
id
字段。是否有一种方法可以让资源在上载客户端的每个实例时创建一个id?在文件中创建空列。例如:
file.csv
以及您的代码:
models.py
class Client(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
return self.name
class Client(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
return self.name
及
管理员
class ClientResource(resources.ModelResource):
class Meta:
model = Client
@admin.register(Client)
class ClientAdmin(ImportExportModelAdmin):
resource_class = ClientResource
class ClientResource(resources.ModelResource):
class Meta:
model = Client
fields = ('id','name')
@admin.register(Client)
class ClientAdmin(ImportExportModelAdmin):
resource_class = ClientResource
这将在从文件加载数据时创建新id。在文件中创建空列。例如:
file.csv
以及您的代码:
models.py
class Client(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
return self.name
class Client(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
return self.name
及
管理员
class ClientResource(resources.ModelResource):
class Meta:
model = Client
@admin.register(Client)
class ClientAdmin(ImportExportModelAdmin):
resource_class = ClientResource
class ClientResource(resources.ModelResource):
class Meta:
model = Client
fields = ('id','name')
@admin.register(Client)
class ClientAdmin(ImportExportModelAdmin):
resource_class = ClientResource
这将在从文件加载数据时创建一个新id