如何在 Django 中添加多个多对多数据 shell

How to add multiple many to many data in django shell

我有一个打了三个联赛的球员实例。在球员模型 class 中,我用联赛 class 设置了多对多字段。

现在我想将所有 3 个联赛添加到 Django 中的球员实例 shell。

class League(models.Model):
        league = models.CharField(max_length=20)

        def __str__(self):
            return self.league

    class Player(models.Model):
        name = models.CharField(max_length=30)
        league_played = models.ManyToManyField(League, default='Unknown')

以下几行内容应该会起作用。使用字段的 add 方法,如 documentation:

中所述
p = Player.objects.get(name=whatever)
p.league_played.add(*League.objects.filter(league__in=['league_name1', 'ln2', 'ln3']))

为了更好的 django shell,我可以向您推荐 django-extensionshell_plus,它具有一些很酷的功能,例如代码完成或自动导入所有模型。