Автоинкрементирование поданных в модели 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!")