Я пытаюсь создать простое CRUD-APP , в котором я использую PostgreSQL + django + DRF для своего проекта, я создал модель после подключения моих django -настроек к PostgreSQL, я затем перенесли эти модели. После этого я импортировал данные из csv в свою «перенесенную таблицу».
Теперь, когда я попытался добавить новый объект в мою перенесенную таблицу, я получил следующую ошибку:
Ошибка: повторяющееся значение ключа нарушает уникальное ограничение «gpuApi_products_pkey» ДЕТАЛИ: ключ (id) = (4) уже существует.
Объяснение ошибки: при переносе таблицы поле pk - это идентификатор, которое создается автоматически после миграции в django, поэтому после успешного импорта файла csv я попытался создать новый объект для вставки, но идентификатор внутри базы данных не был обнаружен django - admin, тем самым создавая объект с id = 4.
Есть ли лучший способ импортировать csv в Postgres, который будет одновременно обновляться с помощью django -admin и быть последовательным источником для базы данных.
файл models.py
class Product(models.Model):
name = models.CharField(max_length=100)
Architecture = models.TextField(blank=True, null=True)
Boost_Clock = models.IntegerField(blank=True, null=True)
Core_Speed = models.IntegerField(blank=True, null=True)
Memory = models.IntegerField(blank=True, null=True)
Memory_Speed = models.CharField(max_length=20, blank=True, null=True)
Memory_Bandwidth = models.CharField(max_length=20, blank=True, null=True)
DVI_Connection = models.CharField(max_length=20, blank=True, null=True)
Dedicated = models.CharField(max_length=20, blank=True, null=True)
Direct_X = models.CharField(max_length=20, blank=True, null=True)
HDMI_Connection = models.CharField(max_length=20, blank=True, null=True)
Integrated = models.CharField(max_length=20, blank=True, null=True)
L2_Cache = models.CharField(max_length=20, blank=True, null=True)
Manufacturer = models.CharField(max_length=20, blank=True, null=True)
Max_Power = models.CharField(max_length=20, blank=True, null=True)
Memory_Bus = models.CharField(max_length=20, blank=True, null=True)
Memory_Type = models.CharField(max_length=20, blank=True, null=True)
Power_Connector = models.TextField(blank=True, null=True)
Process = models.CharField(max_length=20, blank=True, null=True)
Resolution_WxH = models.CharField(max_length=20, blank=True, null=True)
SLI_Crossfire = models.CharField(max_length=20, blank=True, null=True)
price = models.CharField(max_length=20, blank=True, null=True)
url_name = models.TextField(blank=True, null=True)
img_of_gpu = models.ImageField(upload_to='pics', blank=True, null=True)
def __str__(self):
return self.name
Спасибо за вашу помощь.