I’m creating models to manage clients and sports centers. Each customer can be enrolled in several centers only once of course. how should i proceed for this?
class Membership(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='memberships') club = models.ForeignKey(Club, on_delete=models.CASCADE, related_name='memberships') points = models.PositiveIntegerField(default=0, blank=True, null=True) sub_date = models.DateField(auto_now_add=True) #other...
If I proceed in this way it is possible to create multiple subscriptions of the user to the same club. How can I solve the problem?
unique_together in the model Meta so that a Membership object cannot have the same user and club as another object:
class Membership(models.Model): ... class Meta: unique_together = ['user', 'club']
This will return an error if you use a form or the Django admin to create a membership that already exists with that user/club.