Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在views.py中从API保存()数据时设置ForeignKey字段_Python_Database_Model - Fatal编程技术网

Python 如何在views.py中从API保存()数据时设置ForeignKey字段

Python 如何在views.py中从API保存()数据时设置ForeignKey字段,python,database,model,Python,Database,Model,我正在从api中提取数据,并试图从视图中将其直接保存到我的db中,尽管我不断收到错误,因为我必须选择ForeignKey字段 如何在.save()函数中执行此操作 views.py 所有团队={} 团队=团队() 对于团队中的团队: 团队列表=团队( name=team.name, 缩写=团队。缩写, 联盟=更新答案: 你已经为联盟创建了模型,但都没有创建任何对象。用外行的话说,你有蓝图,但还没有建筑 为了创建联盟的对象,您需要在views.py中添加以下内容,这些内容位于创建团队代码的上方 m

我正在从api中提取数据,并试图从视图中将其直接保存到我的db中,尽管我不断收到错误,因为我必须选择ForeignKey字段

如何在.save()函数中执行此操作

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)团队列表。保存()```

更新。谢谢你的帮助!我不需要创建一个新的。我需要选择当前的。非常感谢!工作很有魅力。当然没问题,请将答案标记为已接受,以帮助我,祝你有美好的一天!