В Django models есть такая вот модель:
DEFAULT_AUTOMOBILE_ID = 1 class Face(models.Model): face_id = models.AutoField(primary_key=True) gender = models.CharField(max_length=10) age = models.PositiveIntegerField(default=1) car = models.ForeignKey(Automobile, on_delete=True, default = DEFAULT_AUTOMOBILE_ID) id_of_check = models.CharField(default='None', max_length=10) def __str__(self): return self.gender + " " + str(self.age)
Во views.py имеется функция import_db, которая парсит данные из csv файла data.csv, создавая инстансы модели Face
def import_db(request): f = open('/home/user/main_django_folder/app_folder/data.csv', 'r') for line in f: line = line.split(',') tmp = Face.objects.create() tmp.face_id = line[0] tmp.age = line[1] tmp.gender = line[2] tmp.car = Automobile.objects.get(pk = (line[3])) tmp.id_of_check = line[4] tmp.save() f.close() return render(request, 'home.html', {})
Файл csv выглядит следующим образом:
1,26,M,1,10,
2,27,M,4,11,
3,26,M,3,12,
4,27,M,4,13,
5,27,M,5,14,
6,27,M,3,15,
7,27,M,1,16,
8,27,M,4,17,
9,26,M,4,18,
10,26,M,5,19,
При выполнении функции import_db в базе данных происходит такая вот ситуация:
Открыть изображение
То есть вместе с нужными объектами моделей создаются ещё x2 объекты у которых выставляются дефолтные значения И ещё к тому же я удаляю их постоянно, пробую снова, они опять появляются, НО уже с обновленными айдишниками, которые где-то видимо считаются.
Вопрос мой заключается в том, как избавиться от этих дублирующихся инстансов.