Как провалидировать поля в 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'))