Django:ValueError分配一对多成员变量时异常
我有两个Django模型,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数据库
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')