1

ホッケー プールを管理するために django アプリに取り組んでいますが、クエリの定義に問題があります。関連するモデルは次のようになります。

class Player(models.Model):
    name = models.CharField(max_length=100)

class Team(models.Model):
    pool = models.ForeignKey(Pool)
    manager = models.ForeignKey(User)
    active_players = models.ManyToMany(Player)

私の見解の 1 つで、各プレーヤーを調べて、そのプレーヤーが誰かによって所有されているかどうかを調べたいと考えています。そうでない場合は、テンプレートに渡されるリストに追加されます。

active_player リストに特定のプレーヤーがいる特定の pool.id を持つチームであるかどうかを確認するためのクエリを除いて、すべてが機能しています。私はこれまでのところこれを持っています:

players = Player.objects.all()
for player in players:
    teams = Team.objects.filter(???not sure what to put here???)
    #and then something here to check if teams is empty

どんな助けでも大歓迎です。ありがとう!

4

2 に答える 2

4

プレーヤーがいる場合は、プレーヤーが割り当てられているチームに次のように簡単にアクセスできます。

player.team_set.all()

チームに所属していないプレイヤーのリストを取得したい場合は、さらに簡単です。

Player.objects.filter(team__isnull=True)
于 2012-07-05T19:31:01.803 に答える
0

このようなものを試してみてください:

without_team = []
for player in Player.objects.all():
    if not Team.objcets.filter(active_players__in=[player]):
        without_team.append(player)

テストされていないコード スニペット

于 2012-07-05T19:35:51.600 に答える