Доступ к извлеченным данным из csv в django для создания нового класса

Здравствуйте, я работаю над проектом Django, в котором я итерирую CSV файл для извлечения данных, а затем использую эти данные для создания объекта (продукта). Файл products.models.py структурирован следующим образом:

from django.db import models

class Product(models.Model):
    name = models.CharField(max_length=120)
    image = models.ImageField(upload_to='products', default='no_picture.png')
    price = models.FloatField(help_text='in US dollars $')
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

    def __str__(self):
        return f"{self.name}-{self.created.strftime('%d/%m/%Y')}"

CSV, через который я итерирую, имеет следующую структуру:

POS,Transaction id,Product,Quantity,Customer,Date
1,E100,TV,1,Test Customer,9/19/2022
2,E100,Laptop,3,Test Customer,9/20/2022
3,E200,TV,1,Test Customer,9/21/2022
4,E300,Smartphone,2,Test Customer,9/22/2022
5,E300,Laptop,5,New Customer,9/23/2022
6,E300,TV,1,New Customer,9/23/2022
7,E400,TV,2,ABC,9/24/2022
8,E500,Smartwatch,4,ABC,9/25/2022

Открывая csv-файл после его добавления и итерируя его, я делаю следующее:

if request.method == 'POST':
        csv_file = request.FILES.get('file')
        obj = CSV.objects.create(file_name=csv_file)
with open(obj.file_name.path, 'r') as f:
            reader = csv.reader(f)
            reader.__next__()
            for row in reader:
                print(row, type(row)) # list
                data = ";".join(row)
                print(data, type(data)) # creates a str
                data = data.split(';') # creates a list
                print(data, type(data))
                print(data)

Пока все хорошо. Затем я подготавливаю элементы, посмотрев на вывод из терминала:

['1', 'E100', 'TV', '1', 'Test Customer', '9/19/2022'] <class 'list'>
1;E100;TV;1;Test Customer;9/19/2022 <class 'str'>
['1', 'E100', 'TV', '1', 'Test Customer', '9/19/2022'] <class 'list'>
['1', 'E100', 'TV', '1', 'Test Customer', '9/19/2022']

Подготовка объекта из Product, и здесь что-то начинает идти не так, хотя еще не совсем:

                transaction_id = data[1]
                product = data[2]
                quantity = int(data[3])
                customer = data[4]
                date = parse_date(data[5])

Но здесь, при создании объекта и получении его по имени:

            try:
                product_obj = Product.objects.get(name=product)
            except Product.DoesNotExist:
                product_obj = None

            print(product_obj)

Я всегда получаю None для product_obj. Изменяя строку для соответствия написанию в нижнем регистре, я получаю все то же самое:

product_obj = Product.objects.get(name__iexact=product)

При добавлении этого перед кодом try/except:

product_obj = Product.objects.get(name=product)
                print(product_obj, type(product_obj))

Ошибка, которую я получаю

raise self.model.DoesNotExist(
products.models.Product.DoesNotExist: Product matching query does not exist.
[27/Sep/2022 18:43:30] "POST /reports/upload/ HTTP/1.1" 500 18602
[27/Sep/2022 18:43:30] "GET /__debug__/history_sidebar/?store_id=08bddc1c85314a40a682e27b3582dec6 HTTP/1.1" 200 10255

Как бы вы поступили в этом случае?

Вернуться на верх