Сравните два числа из модели фреймворка django rest

Новичок в django. Я хочу сравнить два значения из модели, подобной следующей, внутри API, сделанного с помощью django rest framework:

class SalaryRangeModel(models.Model):
    salary_min = models.PositiveIntegerField
    salary_max = models.PositiveIntegerField

Я хочу сравнить их. Если salary_min больше, чем salary_max, возвращается ошибка.

Должен ли я закодировать это в модели? В сериализаторе? На внешнем интерфейсе?

Спасибо!

Лучший способ сохранить вашу базу данных чистой - использовать ограничение базы данных https://docs.djangoproject.com/en/dev/ref/models/constraints/#checkconstraint :

class SalaryRangeModel(models.Model):
    salary_min = models.PositiveIntegerField
    salary_max = models.PositiveIntegerField

    class Meta:
        constraints = [
            models.CheckConstraint(
                check=models.Q(salary_max__gt=models.F('salary_min')),
                name='salary_max_bigger_than_salary_min'
            ),
        ]

Как и для всех модификаций модели, вам потребуется сделать новую миграцию.

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