Bulk_create всегда вызывает ошибку первичного ключа (sql server)
Использование Django 3.2.6
, БД - SQL Server
Я пытаюсь использовать bulk_create для создания набора строк в моей базе данных, но он продолжает выдавать ошибку Primary Key, хотя мой первичный ключ должен генерироваться автоматически. В моем представлении я создаю список объектов Model следующим образом и использую bulk_create
asset_map_list = []
for row in data_list:
asset = Asset(asset_type=AssetType.objects.get(name=asset_type_name), asset_name=row['asset_name'], display_name=row['display_name'])
asset_list.append(asset)
Asset.objects.bulk_create(asset_list)
Однако он продолжает выдавать ошибку первичного ключа
django.db.utils.IntegrityError: ('23000', "[23000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Violation of PRIMARY KEY constraint 'PK__mm_asset__xxxxxx'
Мои модели активов и типов активов выглядят следующим образом:
class Asset(models.Model):
asset_type = models.ForeignKey(AssetType, on_delete=models.CASCADE)
asset_name = models.CharField(max_length=80)
display_name = models.CharField(max_length=80)
class AssetType(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=80, unique=True)
description = models.CharField(max_length=80)
Я пытался установить ignore_conflicts=True
, но SQL Server не поддерживает это.
Я пытался сделать df.to_sql()
, но это становится сложным из-за внешнего ключа (как вы можете видеть - пользователь вводит ИМЯ типа актива, но в моей БД активов я храню ID типа актива)
Может ли кто-нибудь помочь мне решить эту проблему с bulk_create или указать мне на лучшую альтернативу?
Спасибо