Ребят, подскажите, как добавить начальное значение input'у type=file в UpdateView. При попытке отправить форму, получаю MultiValueDictKeyError.
В шаблоне вывожу так:
{{ form.image|attr:"class:input-file" }}
А UpdateView имеет следующий вид:
class PostUpdateView(LoginRequiredMixin, UpdateView):
template_name = 'posts/update.html'
model = Post
form_class = PostForm
# initial = {'image': ''}
success_msg = 'Post updated'
def form_valid(self, form):
self.object = form.save(commit=False)
if self.object.author == self.request.user:
image_stream = crop_image(BytesIO(self.request.FILES['image'].read()), json.loads(self.request.POST['params']))
img_temp = NamedTemporaryFile(delete=True)
img_temp.write(image_stream)
img_temp.flush()
self.object.image.save(self.object.image.name, File(img_temp))
self.object.save()
self.success_url = '/posts/'+self.object.slug
return super(PostUpdateView, self).form_valid(form)
return HttpResponseForbidden()
def get(self, *args, **kwargs):
if self.get_object().author != self.request.user:
raise Http404
return super(PostUpdateView, self).get(self, *args, **kwargs)