亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用CSV中的外鍵填充Django模型

如何使用CSV中的外鍵填充Django模型

牛魔王的故事 2021-04-04 10:18:00
我的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對象時類別的值永遠不會為空


查看完整回答
反對 回復 2021-04-13
  • 1 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號