Валидация поля модели в одной строке

 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)],
)
Вернуться на верх