3

3 つのリーグでプレーしたプレーヤー インスタンスがあります。プレイヤー モデル クラスでは、リーグ クラスで多対多のフィールドを設定します。

ここで、3 つのリーグすべてを Django シェルのプレーヤー インスタンスに追加したいと考えています。

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')
4

1 に答える 1

6

次の行に沿った何かが機能するはずです。ドキュメントaddで概説されているように、フィールドのメソッドを使用します。

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

より優れた django シェルについては、 コード補完やすべてのモデルの自動インポートなどのクールな機能を備えたdjango-extension's shell_plusをお勧めします。

于 2017-12-09T21:49:25.807 に答える