Я хочу написать скрипт на Python для импорта содержимого файла CSV в базу данных приложения Django.Поэтому для каждой записи CSV я создаю экземпляр своей модели, устанавливаю соответствующие значения из проанализированной строки CSV и вызываю save для экземпляра модели.Например, см. Ниже:
for row in dataReader:
person=Person()
person.name=row[0]
person.age=row[1]
person.save()
Теперь предположим, что поле Имя помечено как уникальное в модели.Каков наилучший способ справиться с ситуацией, когда импортируемая запись имеет такое же значение имени, которое уже есть в базе данных?Должен ли я проверить это перед вызовом сохранения?Как?Должен ли я поймать исключение?Как будет выглядеть код?
РЕДАКТИРОВАТЬ: Если в БД уже существует запись с таким же полем имени, я все же хотел бы обновить другие поля.Например, если я импортировал Фреда 43 и уже была запись Фреда 42 в БД, он должен обновить БД до Фреда 43.
РЕДАКТИРОВАТЬ: Спасибо за всеответы.Я полагаю, что этот подход, на который указывает chefsmart, будет таким:
try:
obj = Person.objects.get(name=name)
except Person.DoesNotExist:
obj = Person()
obj.name = name
obj.age = age
obj.save()