Python 如何在views.py中从API保存()数据时设置ForeignKey字段
我正在从api中提取数据,并试图从视图中将其直接保存到我的db中,尽管我不断收到错误,因为我必须选择ForeignKey字段 如何在.save()函数中执行此操作Python 如何在views.py中从API保存()数据时设置ForeignKey字段,python,database,model,Python,Database,Model,我正在从api中提取数据,并试图从视图中将其直接保存到我的db中,尽管我不断收到错误,因为我必须选择ForeignKey字段 如何在.save()函数中执行此操作 views.py 所有团队={} 团队=团队() 对于团队中的团队: 团队列表=团队( name=team.name, 缩写=团队。缩写, 联盟=更新答案: 你已经为联盟创建了模型,但都没有创建任何对象。用外行的话说,你有蓝图,但还没有建筑 为了创建联盟的对象,您需要在views.py中添加以下内容,这些内容位于创建团队代码的上方 m
views.py
所有团队={}
团队=团队()
对于团队中的团队:
团队列表=团队(
name=team.name,
缩写=团队。缩写,
联盟=更新答案:
你已经为联盟创建了模型,但都没有创建任何对象。用外行的话说,你有蓝图,但还没有建筑
为了创建联盟的对象,您需要在views.py中添加以下内容,这些内容位于创建团队代码的上方
mlb = League.objects.create(name='MLB')
更新的Views.py
mlb = League.objects.create(name='MLB')
all_teams = {}
teams = Teams()
for team in teams:
team_list = Team(
name=team.name,
abbreviation=team.abbreviation,
league=mlb
)
team_list.save()
此外,请在models.py中进行以下更改,删除联赛中的引号
您的代码:
class Team(models.Model):
name = models.CharField(max_length=100, null=False, blank=False)
abbreviation = models.CharField(max_length=10, null=False,
blank=False)
league = models.ForeignKey(
'League', null=False, blank=False,
on_delete=models.CASCADE)
更新版本:
class Team(models.Model):
name = models.CharField(max_length=100, null=False, blank=False)
abbreviation = models.CharField(max_length=10, null=False,
blank=False)
league = models.ForeignKey(
League, null=False, blank=False,
on_delete=models.CASCADE)
原始答案:
请完全共享models.py和views.py的代码,以便我
我已经回答了你的一些假设
下面的问题
在这种情况下,首先需要为外键创建一个新对象
一个新的league对象。python premier\u league=league.objects.create(name='Permier')
然后,您可以在创建新团队时使用它
name=team.name,
缩写=团队。缩写,
league=permier\u league)团队列表。保存()```
更新。谢谢你的帮助!我不需要创建一个新的。我需要选择当前的。非常感谢!工作很有魅力。当然没问题,请将答案标记为已接受,以帮助我,祝你有美好的一天!