Валидация поля модели в одной строке
approximation = models.IntegerField(null=False, default=None)
Мне нужно проверить это поле. Оно должно быть больше 0, но я не хочу делать функцию.
Добавьте класс Meta следующим образом:
from django.db import models
class Example(models.Model):
approximation = models.IntegerField(null=False, default=None)
class Meta:
constraints = [
models.CheckConstraint(check=models.Q(approximation__gt=0), name='approximation_gt_0'),
]
Источники:
Это добавит ограничение Check в вашу базу данных.
Если значение должно быть больше или равно нулю, вы можете использовать PositiveIntegerField вместо IntegerField.
Если значение должно быть строго больше нуля, вы можете добавить валидатор:
from django.core.validators import MinValueValidator
from django.db import models
approximation = models.IntegerField(
null=False,
default=None,
validators=[MinValueValidator(0)],
)