Сравните два числа из модели фреймворка 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'
),
]
Как и для всех модификаций модели, вам потребуется сделать новую миграцию.