как настроить изображение, возвращенное с помощью UpdateView

#django

#джанго

Вопрос:

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

edit_product.html

 lt;form method="post"gt;  lt;div class="form-group"gt;  lt;labelgt;Namelt;/labelgt;  {{form.name}}  lt;/divgt;  lt;div class="form-group"gt;  lt;labelgt;Descriptionlt;/labelgt;  {{form.description}}  lt;/divgt;  lt;div class="form-group"gt;  lt;labelgt;Pricelt;/labelgt;  {{form.nominal_price}}  lt;/divgt;   lt;div class="form-group"gt;  lt;labelgt;Imagelt;/labelgt;  lt;img src="{{form.instance.photo.url}}" width="200"/gt;  lt;/divgt;  lt;div class="form-group"gt;  {{form.photo}}  lt;/divgt;  lt;button type="submit" class="btn btn-primary"gt;Submitlt;/buttongt; lt;/formgt;  

выход

 lt;form method="post"gt;  lt;div class="form-group"gt;  lt;labelgt;Namelt;/labelgt;  lt;input type="text" name="name" value="flawless legs" maxlength="255" required="" id="id_name"gt;  lt;/divgt;  lt;div class="form-group"gt;  lt;labelgt;Descriptionlt;/labelgt;  lt;textarea name="description" cols="40" rows="10" required="" id="id_description"gt;Epilateur de jambes pour femmeslt;/textareagt;  lt;/divgt;  lt;div class="form-group"gt;  lt;labelgt;Pricelt;/labelgt;  lt;input type="number" name="nominal_price" value="199" min="0" required="" id="id_nominal_price"gt;  lt;/divgt;   lt;div class="form-group"gt;  lt;labelgt;Imagelt;/labelgt;  lt;img src="/media/products/images/449165_ALTMORE2.jpeg" width="200"gt;  lt;/divgt;  lt;div class="form-group"gt;  Currently: lt;a href="/media/products/images/449165_ALTMORE2.jpeg"gt;products/images/449165_ALTMORE2.jpeglt;/agt;lt;brgt; Change: lt;input type="file" name="photo" accept="image/*" id="id_photo"gt;  lt;/divgt;  lt;button type="submit" class="btn btn-primary"gt;Submitlt;/buttongt; lt;/formgt;  

что я должен сделать, чтобы удалить это Currently: lt;a href="/media/products/images/449165_ALTMORE2.jpeg"gt;products/images/449165_ALTMORE2.jpeglt;/agt;lt;brgt;

Ответ №1:

Я нашел хитрое решение :

я заменил

 lt;div class="form-group"gt;  {{form.photo}}  lt;/divgt;  

в моем html-файле с помощью файла типа ввода lt;input type="file" name="photo" accept="image/*" id="id_photo"gt; , и я отредактировал свои представления views.py

 class ProductUpdateView(RedirectToPreviousMixin, UpdateView):  model = Product  form_class = ProductUpdateForm  template_name = 'admin/product_update.html'   def get_object(self):  return Product.objects.get(name=self.kwargs['product_name'])  def form_valid(self, form):  form = form.save(commit=False)  self.photo = form.photo  form.save()  return HttpResponseRedirect(self.get_success_url())