Как провалидировать поля в Django?

сейчас немного обучаюсь django и столкнулся с проблемой валидации полей. Валидация вроде как работает, если передаю условно 50 символов в поле которое принимает 20, то ошибка отображается, но сама запись все равно сохраняется в бд

Сделал простую модель и связь oneToOne к модели с фотками

class BlogPost(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='blog_posts', null=True)
    title = models.CharField(blank=True, validators=[MaxLengthValidator(20), MinLengthValidator(5)])

class BlogPostPhotos(models.Model):
    post = models.OneToOneField(BlogPost, on_delete=models.CASCADE, related_name='blog_photos')
    photo = models.ImageField(upload_to='images/posts/', blank=True, validators=[FileExtensionValidator(['jpeg', 'jpg', 'png'])])

Ну и сам метод в контроллере

def create_post(request):
    new_post = BlogPost.objects.create(
        title = request.POST.get('title'),
        user = request.user
    )

    if (request.POST.get('photo')):
        post_photo = BlogPostPhotos.objects.create(
            post = new_post,
            photo = request.FILES.get('photo'),
        )  

    try:
        new_post.full_clean()
        post_photo.full_clean()
    except ValidationError as e:
        for error in e:
            messages.error(request, error)
        return redirect(reverse('user_profile:profile_information'))

    return redirect(reverse('user_profile:profile_information'))

Ответы (0 шт):