I'd suggest you have class_group
as a ForeignKey relationship within WeightClass
. Hence something like:
class WeightClass(models.Model):
class_name = models.CharField(max_length=100, unique=True)
class_info = models.CharField(max_length=50)
class_group = models.ForeignKey(WeightGroup)
class WeightGroup(models.Model):
name = models.CharField(max_length=100, unique=True)
You could then first display all weight groups, and then filter WeightClass
based on the user selection.
If the Lightweight instance should be the same for both Junior Men and Junior Women then you should maybe consider to model it as a many to many relationship.