![](/img/trans.png)
[英]Form field value not updating after changing value in UpdateView in 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.