在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