Как сказал Бенджамин, валидаторы неявно добавляются только в ModelForms.Больше документации о валидаторах здесь .
Если вы хотите быть уверены, что ни один объект не может быть создан с вашим условием даты, вы должны переопределить его метод сохранения, как показано ниже.Также учтите, что хотя Django будет обрабатывать объекты наивных дат, лучше использовать django.utils.timezone.now
from django.db import models
import datetime
from django.core.exceptions import ValidationError
class Event(models.Model):
title = models.CharField(max_length=50)
text = models.TextField()
date = models.DateField(default=datetime.date.today())
duration = models.TextField(default='0', blank='true')
created_at = models.DateTimeField(default=datetime.datetime.now(), blank='true')
def save(self, *args, **kwargs):
if self.date < datetime.date.today():
raise ValidationError("The date cannot be in the past!")
super(Event, self).save(*args, **kwargs)