UpdateView не удаляет изображение при обновлении формы - Django

У меня есть форма, с помощью которой пользователь может загружать картинки в пост, это работает нормально, но проблема в том, что когда пользователь хочет удалить текущую картинку, которая есть в посте. Она может быть обновлена на другую картинку, но она не может быть удалена из поста, чтобы стать "Пустой".

Models.py

class PostUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView):
    form_class = PostEditForm
    model = Post

    def form_valid(self, form):
        form.instance.author = self.request.user
        return super().form_valid(form)


    def test_func(self):
        post = self.get_object()
        if self.request.user == post.author:
            return True
        return False

forms.py

class PostEditForm(forms.ModelForm):
    thumb = forms.ImageField(required=False, widget=forms.FileInput)

    class Meta:
        fields = ['title', 'content', 'thumb', 'date_start', 'start_time',
              'date_end', 'end_time', ]
        model = Post

По умолчанию для поля изображения с загруженным файлом вы должны получить текст "Currently", который указывает на текущее изображение, и флажок "Clear", который позволит вам снять настройку поля.

Причина отсутствия этих опций заключается в том, что вы явно установили виджет fields на FileInput. Вместо этого вы должны использовать ClearableFileInput [Django docs] (или просто пропустить аргумент виджета, так как он используется по умолчанию), который дает вам эти опции:

class PostEditForm(forms.ModelForm):
    thumb = forms.ImageField(required=False, widget=forms.ClearableFileInput)

    class Meta:
        fields = ['title', 'content', 'thumb', 'date_start', 'start_time',
              'date_end', 'end_time', ]
        model = Post
Вернуться на верх