我的model.py:# Riders models ----------------------------------------class CategoryTeam(models.Model): name = models.CharField(max_length = 256) def __str__(self): return self.nameclass Teams(models.Model): name = models.CharField(max_length = 256) code = models.CharField(max_length = 10) nation = models.CharField(max_length = 10) continent = models.CharField(max_length = 10) category = models.ForeignKey(CategoryTeam, on_delete=models.CASCADE,) def __str__(self): return self.name#-----------------------------------------------------#我要填充的腳本from basic_app.models import CategoryTeam,Teamsdef populateCat(): f = open('CategoryCSV.csv') reader = csv.reader(f) next(reader) for row in reader: # Create new User Entry category = CategoryTeam.objects.get_or_create(name=row[0])[0]def populateTeamat(): f = open('FantaDS Project - Teams.csv') reader = csv.reader(f) next(reader) for row in reader: # Create new User Entry team = Teams.objects.get_or_create( name = row[0], code = row[1], nation = row[2], continent = row[3], category = row[4] )[0]if __name__ == '__main__': print("Populating the databases Cat...Please Wait") populateCat() print('Populating Complete') print("Populating the databases Team...Please Wait") populateTeamat() print('Populating Complete')
1 回答

月關寶盒
TA貢獻1772條經驗 獲得超5個贊
確保在創建Teams對象時類別永遠不會為空,即,值來自csv的row [4]。換句話說,如果row [4]在任何時間點都為空,則將拋出異常,因為在Model類別中是強制性外鍵。要么做到
category = models.ForeignKey(CategoryTeam, on_delete=models.CASCADE, null=True, black=True)
或確保在創建Teams對象時類別的值永遠不會為空
添加回答
舉報
0/150
提交
取消