Это мой первый проект Django, и у меня возникают проблемы с загрузкой данных из файла .csv в модель с внешним ключом.
Вот мои модели:
class Artist(models.Model):
artistID = models.IntegerField(primary_key=True, null=False, unique=True)
artistName = models.CharField(max_length=50)
artistNotes = models.TextField(blank=True)
class Art(models.Model):
artID = models.IntegerField(primary_key=True, null=False, unique=True)
artistID = models.ForeignKey(Artist, db_column='artistID', on_delete=models.CASCADE, default = 1)
title = models.CharField(max_length=100, default = "No Title Given")
location = models.CharField(max_length=100)
owner = models.CharField(max_length=50, blank=True)
origin = models.CharField(max_length=150, blank=True)
medium = models.CharField(max_length=50, blank=True)
artNotes = models.TextField(blank=True)
Iнаписал представление, которое будет импортировать данные:
def importArt(request):
myFile = open('misc/Art.csv', 'r')
for line in myFile:
line = line.split(',')
temp = Art.objects.create()
temp.artID = line[0]
temp.artistID = line[1]
temp.title = line[2]
temp.location = line[3]
temp.owner = line[4]
temp.origin = line[5]
temp.medium = line[6]
temp.artNotes = line[7]
temp.save()
myFile.close()
return render(request, 'dtccArt/importArt.html', {})
Эта стратегия хорошо работала для таблицы Artist, но я получаю ошибку: Невозможно назначить «2»: «Art.artistID» долженбыть экземпляром "Artist".
Моя первая строка данных выглядит следующим образом:
1,2,Wisdom & Knowledge,Main Library,College,Visiting Artist at DTCC 19??-19??,Stone Sculpture,,
Я исправил две ошибки, прежде чем добраться до этой застрявшей точки.Я добавил db_column = 'artistID' и default = 1 в поле ArtistID модели Art.Значение по умолчанию = 1 относится к неизвестному художнику в случае, если художник неизвестен для произведения искусства.
Может кто-нибудь объяснить, что означает сообщение об ошибке, какие-то советы о том, как его исправить, или более простой способ импорта данных .csv в существующую модель Django?
Заранее спасибо!Andrea