我的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 回答

月關(guān)寶盒
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
確保在創(chuàng)建Teams對(duì)象時(shí)類(lèi)別永遠(yuǎn)不會(huì)為空,即,值來(lái)自csv的row [4]。換句話(huà)說(shuō),如果row [4]在任何時(shí)間點(diǎn)都為空,則將拋出異常,因?yàn)樵贛odel類(lèi)別中是強(qiáng)制性外鍵。要么做到
category = models.ForeignKey(CategoryTeam, on_delete=models.CASCADE, null=True, black=True)
或確保在創(chuàng)建Teams對(duì)象時(shí)類(lèi)別的值永遠(yuǎn)不會(huì)為空
添加回答
舉報(bào)
0/150
提交
取消