Добавить первичный ключ при загрузке исходного файла в 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
admin.py
class ClientResource(resources.ModelResource):
class Meta:
model = Client
@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
поле, которое является полем первичного ключа. Есть ли способ, которым я могу заставить ресурс создавать идентификатор при загрузке каждого экземпляра Client
?
1 ответ
Создать пустой столбец в файле. Пример:
file.csv
и ваш код:
models.py
class Client(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
return self.name
а также
admin.py
class ClientResource(resources.ModelResource):
class Meta:
model = Client
fields = ('id','name')
@admin.register(Client)
class ClientAdmin(ImportExportModelAdmin):
resource_class = ClientResource
это создает новый идентификатор при загрузке данных из файла.