Почему request.FILES.getlist возвращает пустой список?
прописал d forms.py приложения в джанго следующий код
from django import forms
class PostForm(forms.Form):
title = forms.CharField(widget=forms.TextInput())
text = forms.CharField(widget=forms.Textarea())
images = forms.ImageField(widget = forms.ClearableFileInput(attrs={'multiple': 'multiple'}))
далее в views.py прописал следующий код
...
def create_post(request):
if request.method == 'POST':
form = forms.PostForm(request.POST, request.FILES)
files = request.FILES.getlist('images')
print(files, "ТУТ ДОЛЖНЫ БЫЛИ БЫТЬ ИЗОБРАЖЕНИЯ КАКОГО ФИГАААААА")
return redirect('Home')
else:
form = forms.PostForm
return render(request, 'mainapp/createpost.html', {'f': form})
...
При выполнении запроса на создание записи должен срабатывать этот метод и тут всё ясно: заполнение формы и отправка её на сервер, но тут трабла, я хочу сделать загрузку сразу нескольких картинок, а для обращения к ним нужно обращаться через request.FILES.getlist('{имя поля формы}'), но при попытке вывести его значения в консоль, то есть после выполнение всего кода views.py мне в консоле пишет следующее:
[06/Jul/2021 18:16:22] "GET /create HTTP/1.1" 200 712
[06/Jul/2021 18:16:22] "GET /static/mainapp/style.css HTTP/1.1" 404 1810
[06/Jul/2021 18:16:36] "GET /create HTTP/1.1" 200 806
[06/Jul/2021 18:16:36] "GET /static/mainapp/style.css HTTP/1.1" 404 1810
[] ТУТ ДОЛЖНЫ БЫЛИ БЫТЬ ИЗОБРАЖЕНИЯ КАКОГО ФИГАААААА
[06/Jul/2021 18:16:43] "POST /create HTTP/1.1" 302 0
[06/Jul/2021 18:16:43] "GET / HTTP/1.1" 200 649
[06/Jul/2021 18:16:43] "GET /static/mainapp/style.css HTTP/1.1" 404 1810
Почему так? Я вроде всё делал правильно и всё работает, сразу несколько изображений выбирается, но как при попытке получить список изображений он выдает пустой список.
createpost.html
{% extends 'mainapp/base.html' %}
{% block title %}
Создание поста
{% endblock %}
{%block cont%}
<form method = 'post'>
{% csrf_token %}
<pre>
Заголовок: {{f.title}}
{{f.title.errors}}
Текст: {{f.text}}
{{f.text.errors}}
Изображения: {{f.images}}
{{f.images.errors}}
</pre>
<button type = submit>Опубликовать</button>
</form>
{%endblock%}
base.html
<!DOCTYPE html>
{% load static %}
<html>
<head>
<link rel="stylesheet" href="{%static 'mainapp/style.css'%}">
<meta charset="UTF-8">
<title>
{%block title%}
{%endblock%}
</title>
</head>
<body>
{%block cont%}
{%endblock%}
</body>
</html>
P.S Не обращайте внимания на всякие аспекты типо не указания класса для полей форм и на то, что я не сделал проверку полей форм, пока я не задал сюда вопрос, я кучу проверок делал, но, увы, решение не нашёл.
Ответы (1 шт):
enctype="multipart/form-data" укажите в форме что бы отправка файлов работала