0

私のモデルは次のようなものです:

class PlayerProfile(models.Model):
    user = models.OneToOneField(User)
    team = models.ForeignKey(Team)
    is_captain = models.BooleanField(default=False)
    def __unicode__(self):
        return self.user.get_username()

class Game(models.Model):
    team = models.ForeignKey(Team)
    game_time = models.DateTimeField()
    location = models.CharField(max_length=100)
    def __unicode__(self):
        return self.team.name + ' ' + unicode(self.game_time)

class GameStatus(models.Model):
    game = models.ForeignKey(Game, default=None, null=True)
    team = models.ForeignKey(Team, default=None, null=True)
    player = models.ForeignKey(PlayerProfile, default=None, null=True)
    game_status = models.CharField(max_length=1)

GameStatus モデルにアクセスできるメソッドを PlayerProfile に記述して、game_status プロパティを取得できるようにすることは可能ですか?

4

1 に答える 1

0

にメソッドを書く必要はありませんPlayerProfile

組み込みのリレーションシップ マネージャーを使用して、アクセスする必要があるに属していることPlayerProfileがわかっている場合は、 parent を介してこれを調べることができます。GameStatusPlayerProfile

# look up first player returned from the PlayerProfile model manager
player_profile_1 = PlayerProfile.objects.all()[0]

# look up first game status associated with the first player profile, 
# then access the game_status attribute
game_status_1 = player_profile_1.gamestatus_set.all()[0].game_status

更新

game_status次のようなループ内からゲームの にアクセスできる場合:

{% for playerprofile in game.team.playerprofile_set.all %}
    {% for game_status in playerprofile.gamestatus_set.get(game_id=game.id) %}
        {{ game_status.game_status }}
    {% endfor %}
{% endfor %}
于 2013-09-09T21:45:41.170 に答える