簡體   English   中英

更新表單時 UpdateView 未刪除圖像 - Django

[英]UpdateView is not removing image when updating form - Django

我有一個表單,用戶可以將圖片上傳到帖子中,這工作正常,但問題是當用戶想要刪除帖子中的當前圖片時。 它可以更新為另一張圖片,但不能將其從帖子中刪除為“空白”。

模型.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

默認情況下,對於帶有上傳文件的圖像字段,您應該獲得“當前”文本,這將指示當前圖像和一個標記為“清除”的復選框,這將允許您取消設置該字段。

您沒有這些選項的原因是因為您已明確將字段小部件設置為FileInput 您應該改為使用ClearableFileInput [Django 文檔] (或者簡單地跳過 widget 參數,因為這是默認設置),它為您提供了這些選項:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM