#python #django #django-models #django-forms #django-templates
Вопрос:
У меня есть валидатор для ограничения размера загружаемого поля («трек» и «художественное произведение») внутри формы, я добавил свою функцию валидатора в’validators.py» и установите параметр «валидаторы» в поле «Моя модель». Похоже , это работает, так как приложение автоматически перезагружает форму, если файл слишком велик, но моя ошибка проверки не видна, как я могу отобразить это сообщение об ошибке на экране ? также просто хочу отметить, что я использую «хрустящие формы» для отображения формы загрузки.
validators.py
from django.core.exceptions import ValidationError
def file_size(value):
filesize = value.size
if filesize > 5242880:
raise ValidationError("The maximum file size that can be uploaded is 5MB")
else:
return value
models.py
class Music(models.Model):
track = models.FileField(upload_to='path/to/audio', validators=[file_size])
title = models.TextField(max_length=50)
artwork = models.ImageField(upload_to='path/to/img', validators=[file_size])
artist_name = models.TextField(max_length=50)
artist = models.ForeignKey(User, on_delete=models.CASCADE)
date_posted = models.DateTimeField(default=timezone.now)
forms.py
class MusicForm(forms.ModelForm):
class Meta:
model = Music
fields = ['title', 'artist_name', 'track', 'artwork']
help_texts = {
'track': ('Max mp3 size: 5 MB'),
'artwork': ('Max image size: 5 MB'),
}
widgets = {
'title': forms.Textarea(attrs={'rows':1, 'cols':1}),
'artist_name': forms.Textarea(attrs={'rows':1, 'cols':1}),
}