Я пытаюсь загрузить файл изображения с помощью Django. Я могу получить другие данные формы, но не файл изображения. request.FILES пустоНиже мой код.
models.py
class Module(models.Model):
title = models.CharField(max_length = 50)
slug = models.CharField(max_length = 50)
description = models.TextField(max_length = 500)
Forms.py
class ModuleAddForm(forms.ModelForm):
title = forms.CharField(max_length = 50, widget = forms.TextInput(attrs = {'class': 'form-control', 'placeholder': 'Title'} ))
description = forms.CharField(max_length = 50, widget = forms.Textarea(attrs = {'class': 'form-control', 'placeholder': 'Description'} ))
image = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple': True}), required=False)
class Meta:
model = Module
fields = ['title', 'description', 'image']
Views.py
form = ModuleAddForm(request.POST, request.FILES or None)
if form.is_valid():
title = form.cleaned_data['title']
description = form.cleaned_data['description']
image = request.FILES['image]
HTML
<form class="kt-form" method = "POST" id="kt_form userform" enctype=”multipart/form-data” >{% csrf_token %}
<div class="form-group row">
<label class="col-3 col-form-label">Title</label>
<div class="col-9">
{{ form.title }}
</div>
</div>
<div class="form-group row">
<label class="col-3 col-form-label">Description</label>
<div class="col-9">
{{ form.description }}
</div>
</div>
<div class="form-group row">
<label class="col-3 col-form-label">Image</label>
<div class="col-9">
{{ form.image }}
</div>
</div>
<button type="submit" class="btn btn-brand">Save</button>
</form>
Когда я печатаю request.FILES, он возвращался пустым, а также когда я пытался получить его с помощью Keyон вернул ошибку MultiValueDict. Но когда я печатаю request.POST, изображение было там. Но это было бесполезно, потому что изображение не было загружено.
Я использую другую модель для хранения файлов изображений этой модели (модуля), потому что он может содержать несколько изображений. Я реализовал ту же логику в моей другой модели и функции. Там он работает правильно, но не работает здесь.
Я использую Django 2.2.