CSV в Django Models определенные поля

Я пытаюсь загрузить CSV в Django Model. Проблема, с которой я столкнулся, заключается в том, как я могу записать данные из CSV в каждое из полей без использования индексов? Вместо этого записывать непосредственно имя поля из CSV.

with open(obj.file_name.path, 'r', encoding="utf-8") as f:
        reader = csv.reader(f)
        review_count = 0
        for i, row in enumerate(reader):
            review_count += 1
            print(i)
            if i==0:
                pass
            else:
                OrderProcessModel.objects.create(
                order_id=row[0],
                order_date=row[1],
                external_id=row[2],
                email=row[3],
                first_name=row[4],
                last_name=row[5],
                quantity=row[6],
                product_id=row[7],
                owner=request.user
                )
                print(row)
        obj.activated = True
        obj.save()

Например, для order_id=row[0], как я могу конкретно записать данные в order_id без использования row[0]? Например, order_id=row['order_id'] не работает.

Спасибо!

Посмотрите csv.DictReader (docs)

import csv

with open(obj.file_name.path, 'r', encoding="utf-8") as f:
    reader = csv.DictReader(f)
    for row in reader:
        # row is a dictionary
        print(row['order_id'], row['order_date'])

Если вам интересно, как превратить словарь в объект, взгляните на это: Можно ли передавать словарь в модели django при создании?

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