Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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
Django:ValueError分配一对多成员变量时异常_Django - Fatal编程技术网

Django:ValueError分配一对多成员变量时异常

Django:ValueError分配一对多成员变量时异常,django,Django,我有两个Django模型,Team和Player,其中Player与Team有多对一关系: class Team(models.Model): name = models.CharField(max_length=20) class Player(models.Model): name = models.CharField(max_length=20) team = models.ForeignKey(Team) 我已经创建了一个Team对象,并将其保存在SQL数据库

我有两个Django模型,
Team
Player
,其中
Player
Team
有多对一关系:

class Team(models.Model):
    name = models.CharField(max_length=20)

class Player(models.Model):
    name = models.CharField(max_length=20)
    team = models.ForeignKey(Team)
我已经创建了一个
Team
对象,并将其保存在SQL数据库中:

my_team = Team(name = 'Django_FC')
my_team.save()
现在,我想创建一个
Player
对象,
my_Player
,它的
team
就是我刚才创建的
my_team
对象。但是我不在创建
我的团队
的范围内,因此我必须从数据库中加载它,以便将其分配给
我的球员
的团队。因此,我尝试了以下方法:

the_team = Team.objects.filter(name = 'Django_FC')
my_player = Player(name = 'Mr_Python', team = the_team)
但是,我得到以下
ValueError
异常:

Cannot assign "[<Team: Django_FC>]": "Player.team" must be a "Team" instance.
无法分配“[]”:“Player.team”必须是“team”实例。
有人能解释一下我做错了什么吗?谢谢。

使用
get()
而不是
filter()

引自:

filter()
将始终为您提供一个
QuerySet
,即使只有一个对象 匹配查询-在本例中,它将是一个包含 单一元素

如果您知道只有一个对象与您的查询匹配,您可以 在直接返回对象的管理器上使用
get()
方法


@Karnivaurus完全一样?哦,对不起-我认为你的解决方案确实有效!我有一个不同但相似的例外,我现在已经解决了。谢谢
the_team = Team.objects.get(name='Django_FC')