Konstantin18ko
@Konstantin18ko
Стоматолог

Как сделать валидацию возраста?

Как сделать валидацию поля возраста, чтоб дата рождения была не больше текущей (не могла быть завтрашней или на месяц вперед), и возраст суммарно был не старше 120 лет?
  • Вопрос задан
  • 757 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
По мотивам документации:
from datetime import timedelta
from django.db import models
from django.core.exceptions import ValidationError
from django.utils import timezone


class Person(models.Model):
    dob = models.DateField('Дата рождения')

    def clean_fields(self, exclude=None):
        super().clean_fields(exclude=exclude)

        now = timezone.now()
        if self.dob > (now - timedelta(days=30)):
            raise ValidationError('Рано ещё заносить в базу')
        if (now.year - self.dob.year) > 120:
            raise ValidationError('Поздно уже заносить в базу')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы