I would say that it is best to create a Contestant model. Most likely, you will need more information about the opponent, which depends on the team, but separately from the player (for example, whether the competitor is a starter, participant number, etc.). Creating a Contestant model allows you to store this information separately from User , and you will have a ForeignKey in the Contestant model referencing User s, and another ForeignKey in the Contestant model referencing Team s.
source share