Вот пример с годом постройки, ввиду контекста приложения здесь models.IntegerField, но это по аналогии можно и для дат сообразить
from django.core.validators import MaxValueValidator, MinValueValidator
class Unit(models.Model):
"""модель объекта недвижимости"""
year_construction = models.IntegerField(verbose_name='Год постройки', choices=year_choices(),null=True, blank=True, validators=[MinValueValidator(1950), max_value_current_year])
def current_year():
return datetime.date.today().year
def max_value_current_year(value):
return MaxValueValidator(current_year())(value)
def year_choices() -> List:
return [(r,r) for r in range(1950, datetime.date.today().year+1)]