Seems odd to connect Player to Team via Goal and GameRoster (only for
hometeam, presumably you have away team as well) - what about players
that don't score, don't you want those details as well? Maybe you show
an edited version of your models.
Why not have
class Player(models.Model):
lastname = models.CharField(max_length=60)
team = models.ForeignKey(Team)
This way players, teams and goals are all tied closely. And you could rename
GameRoster to PlayerGames or something a little more intuitive.
Hope this helps.
Christian Wittwer wrote:
> Hi,
> I have a question regarding the admin interface of django.
>
> My models
>
> class Team(models.Model):
> name = models.CharField(max_length=10)
>
> class Player(models.Model):
> lastname = models.CharField(max_length=60)
>
> class Goal(models.Model):
> game = models.ForeignKey(Game)
> goal_scorer =
> models.ForeignKey(Player,related_name='goal_scorer',blank=True,null=True)
>
> class Game(models.Model):
> home_team = models.ForeignKey(Team,related_name='home_team')
>
> class GameRoster(models.Model):
> player = models.ForeignKey(Player)
> game = models.ForeignKey(Game)
>
> Each Goal is scored by a Player in a Game. I'm using a inline form to
> insert goals for a game.
> The players are somehow connected to the team (gameroster), and
> therefore to the game.
>
> I found the place to hook in to limit the choices of player.
>
> class GoalInline(admin.TabularInline):
> model = Goal
> extra = 4
>
> def formfield_for_foreignkey(self, db_field, request, **kwargs):
> if db_field.name == "goal_scorer":
> kwargs["queryset"] =
> Player.objects.filter(gameroster__game=self.game)
> return db_field.formfield(**kwargs)
>
> return super(GoalInline,
> self).formfield_for_foreignkey(db_field, request, **kwargs)
>
>
> The missing point is now: How to access game, which is connected to
> the goal to limit the players?
> I tried self.game as you can see, but that doesn't work.
> How can I access the model from within this function?
>
> Chris
>
> >
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---