@Razer1511

Как ограничить размер загружаемого изображения в Django?

Добрый день. Пытаюсь сделать простой загрузчик изображений с ограничением. Уже 2 дня пытаюсь решить данную задачу, но пока никак

Вопрос 1: Как сделать ограничение загружаемого объекта до 200 кб?

Мои попытки:

models.py
class UploadImage(models.Model):
    title = models.CharField(max_length=100, unique=True, verbose_name='Введите название изображения')
    cover = models.ImageField(upload_to='images/', verbose_name='')

    def __str__(self):
        return self.title


forms.py
class PostForm(forms.ModelForm):
    class Meta:
        model = UploadImage
        fields = ['title', 'cover']

    def clean_image(self):
        cover = self.cleaned_data.get('cover', False)
        if cover:
            if cover.size > 4*1024*1024:
                raise ValidationError("Image file too large ( > 4mb )")
            return cover
        else:
            raise ValidationError("Couldn't read uploaded image")


Почему-то данный метод не работает, хоть тут и речь про 4мб

2. Как ссылаться на объект message из вьюшки?

views.py
class IndexView(LoginRequiredMixin, CreateView):
    template_name = 'upload/index.html'
    form_class = PostForm
    model = UploadImage
    success_url = '/upload/'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['message'] = ''
        return context


Хочу создать в той же самой проверке формы информационное сообщение, если форма отработала корректно или нет.
Пытался как-то так:

if 1 + 2 == 3:
   IndexView.get_context_data(self, message) = 'Всё верно'
else:
    IndexView.get_context_data(self, message) = 'Неверно'
  • Вопрос задан
  • 393 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы