I’m trying to write a league table for some sport results using django. At the moment my model looks pretty basic:
matchnum = models.AutoField(primary_key=True)
homeuser = models.ForeignKey(User, related_name="hmuser")
hometeam = models.ForeignKey('teams', related_name="hmteam")
homescore = models.IntegerField()
wayuser = models.ForeignKey(User)
awayteam = models.ForeignKey('teams')
awayscore = models.IntegerField()
pub_date = models.DateTimeField(auto_now_add=True, editable=False)
id = str(self.matchnum)
teamname = models.CharField(max_length=40)
verbose_name_plural = "Teams"
However, with the information in this simple model – I should be able to generate a league table, with the following fields:
|Team||Played #||Won||Drawn||Lost||Goals For||Goals Against||Goal Difference||Points|
So how to put this into a Django App? Well I need some advice, as my original method was to edit the save() function of the model to input fields into a new model – however, I should be editing things at the form level. I’d also like a ‘generate league’ method, rather than a method where a league is generated at the end of each score addition. The main advantages of this approach is that I can:
- Generate the League from existing score data.
- Future Users can generate the League from their data.
- Leagues can be generated at the end of each ‘gameweek’ – rather than just at the end of each game.
Django is a fantastic python framework that I’m immediately getting to grips with – but as this kind of application (simple as it is) – is one that’s scalable and may be useful to many other users.. I want to get it right from the start.
I’ll be tagging the posts with ‘djangoleague’ if you want to keep up with development – and if anyone wants to use the project/help me out with it – please post in the comments and I’ll get back to you.