Автоинкрементирование поданных в модели Python Django

Это моя модель

class Department(BaseModel):
    name = models.CharField(max_length=20, null=False)
    maximum_number_of_employees = models.PositiveIntegerField(MinValueValidator(0), MaxValueValidator(3))
    employee = models.ForeignKey(Employee, on_delete=models.CASCADE, null=False)

    def __str__(self):
        return self.name

Я хочу автоматически увеличивать поле maximum_number_of_employees при создании отдела и ассоциировании сотрудника с каждым отделом, чтобы я мог проверить, что maximum_number_of_employees не превышает максимальный лимит

Определите метод сохранения следующим образом:

class Department(BaseModel):
    name = models.CharField(max_length=20, null=False)
    maximum_number_of_employees = models.PositiveIntegerField(MinValueValidator(0), MaxValueValidator(3))
    employee = models.ForeignKey(Employee, on_delete=models.CASCADE, null=False)

    def save(self, *args, **kwargs):
         if Department.objects.select_related('employee').count() < MAX_LIMIT: 
             self.maximum_number_of_employees += 1
             super(Department).save(self, *args, **kwargs)
         else:
             raise ValueError("Limit exceeded!")
Вернуться на верх