Обновление или создание данных из файла CSV с уникальным полем в Django
Я хотел бы обновить или создать данные в моей базе данных путем импорта CSV-файла.
Я протестировал и когда я импортирую CSV файл, когда "растения" еще не были созданы, он работает, но когда в моей базе данных есть одинаковые названия растений, у меня возникает ошибка целостности:
IntegrityError : duplicate key value violates unique constraint "perma_plants_plant_name_key" DETAIL: Key (name)=(Test bis) already exists.
Так что мой метод update_or_create не работает, потому что в моей модели поле name должно быть уникальным. Как я могу решить эту проблему?
Вот моя модель :
class Plant(models.Model):
name = models.CharField(max_length=150, unique=True)
def __str__(self):
return self.name
Вот мое мнение :
class UploadFileView(generics.CreateAPIView):
serializer_class = FileUploadSerializer
def post(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
file = serializer.validated_data['file']
reader = pd.read_csv(file)
for _, row in reader.iterrows():
Plant.objects.update_or_create(
name=row['Name'],
)
return Response({"status": "Success : plants created"},
status.HTTP_201_CREATED)
Спасибо за ответы