I forgot to address the issue of your LeagueTable, which appears to be
a way to keep track of standings. It looks like what you're really
doing is trying to keep track of matches won and lost, points earned,
etc i.e., the standings of a league.
One way to do this is with a Match model:
class Match(models.Model):
date = models.DateField()
home_team = models.ForeignKey(Team)
visiting_team = models.ForeignKey(Team)
home_score = models.IntegerField()
visiting_score = models.IntegerField()
For each match you would create an object in your Match table, with
the score for each team. Having this data would allow you to calculate
1) which team won, 2) number of points earned, etc.
So just querying the Match table would allow you to calculate on-the-
fly the record for each team, the number of points, then sort by the
number of points to produce a Standings queryset. I hope that makes
sense without giving examples of all the queries.
This is just one way to do what I think you're trying to do. It may
not be the best way. But hopefully it gives you some ideas about how
to use Django models.
Alan