Ограничение количества объектов, которые пользователь может добавить в другой объект

У меня есть небольшой вопрос, Я хотел бы ограничить упражнения в тренировочном блоке до 3-5 упражнений, и ограничить тренировочные блоки в тренировочном плане до 12 тренировочных блоков, так что пользователь не сможет добавить бесконечное количество упражнений, или бесконечное количество тренировочных блоков в план?

class TrainingPlan(models.Model):
    user= models.ForeignKey(User, on_delete=models.CASCADE)
    nameoftheplan = models.CharField(verbose_name="Name of the plan",max_length=20, null=True)
    Squat1RM = models.PositiveIntegerField(verbose_name="100%RM in squat",default=0, blank=True, null=True)
    DeadliftT1RM =models.PositiveIntegerField(verbose_name="100%RM maximal repetition in deadlift",default=0, blank=True, null=True)
    Benchpress1RM = models.PositiveIntegerField(verbose_name="100%RM maximal repetition in benchpress",default=0, blank=True, null=True)
    mesocycle= models.CharField(max_length=40, choices=MESOCYCLE_CHOICES,default=MESOCYCLE_GPP)
    timeoftheplan= models.CharField(max_length=40,choices=TIME_CHOICE,default=TIME_WEEK3 )

    def __str__(self):
        return str(self.nameoftheplan)

class TrainingUnit(models.Model):
    trainingplan=models.ForeignKey(TrainingPlan, on_delete=models.CASCADE)
  

class Exercise(models.Model):
    trainingunit=models.ForeignKey(TrainingUnit,on_delete=models.CASCADE)
    exercisename=models.CharField(max_length=100,verbose_name="Exercise",choices=EXERCISE_CHOICES)
    exercisesets=models.IntegerField(choices=SETSCHOICES)
    exercisereps=models.IntegerField(choices=REPCHOICES)

когда вы обрабатываете запрос пользователя, вы можете использовать objects.filter().count() или objects.all().count() идею в count() вы можете применить ее к любому запросу, который вы хотите, таким образом вы проверите, сколько значений у вас есть в базе данных на основе условия, после чего вы можете принять запрос пользователя или выдать ошибку

Вернуться на верх