Я пытаюсь получить форму модели Django с полем изображения, но у меня есть две проблемы:
- Я не знаю, как показать текущее имя изображения на входе
- Я не знаю, как предоставить способ удаления изображения
форм :
class CityLogoForm(forms.ModelForm):
logo = forms.ImageField(widget=forms.FileInput(attrs={'class': 'custom-file-input'}), required=False)
class Meta:
model = City
fields = ['logo']
просмотров :
def management_form_general(request, city_slug):
city = City.objects.get(slug=city_slug)
if request.method == 'POST':
logo_form = CityLogoForm(request.POST, request.FILES, instance=city)
if logo_form.is_valid():
logo_form.save()
else:
logo_form = CityLogoForm(instance=city)
return render(request, 'management/form/city_general.html', {'city': city, 'logo_form': logo_form})
html :
<form action="" enctype="multipart/form-data" method="post">
<div class="form-group row">
<label for="id_city" class="col-sm-2 col-form-label form_title">{{ logo_form.logo.label }}</label>
<div class="custom-file">
{{ logo_form.logo }}
<label class="custom-file-label" for="{{ logo_form.logo.id_for_label }}" data-browse="Choisir Image">{{ logo_form.logo.label }}</label>
</div>
</div>
</form>
У меня есть скрипт, меняющий метку, когда пользователь загружает что-то, но я не могу найти способ получитьтекущее значение для полей изображения (для обычных оно правильно заполнено). Поскольку он, кажется, не заполняет ввод, он, кажется, игнорирует, когда ввод пуст, и поэтому никогда не удаляет текущий логотип.
Редактировать: если возможно, ответ должен быть выполнимым в цикле for над formset_factory