Я пытаюсь загрузить CSV в таблицу Django.Я не могу сопоставить данные с внешними ключами.'cpt' - это внешний ключ от модели цены к сервису.Есть много строк цены, которые отображаются на одну строку cpt, но каждая отдельная строка имеет только один cpt.
Вот мой код загрузки.
path = "/Users/joannerodrigues/Documents/csv_import/"
os.chdir(path)
from catalog.models import Service, Price
with open('price.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
p = Price(com_desc=row['com_desc'],
service=Service.objects.filter(cpt=str(row['cpt']))[0])
p.save()
Это ошибка, которую я получаю:
site-packages/django/db/models/query.py", line 303, in __getitem__
return qs._result_cache[0]
IndexError: list index out of range
Вот как выглядят данные: Цена данных: (Заголовок включен в CSV-файл)
com_des, cpt
"desc 1", '57647'
"desc 2", '87654'
Сервисные данные: (заголовок включен в файл)
desc_us, cpt, price
"desc1....", '57647', '89.95'
"dsc2.....", '87654', '875.87'
Вот модели.py Цена
class Price(models.Model):
com_desc = models.CharField(max_length = 200, blank = True, null = True)
service = models.ForeignKey("Service", on_delete=models.SET_NULL, null=True)
Сервис
class Service(models.Model):
desc_us = models.TextField(blank=True, primary_key = True)
cpt = models.IntegerField(default= 10000)