Django / UploadFileForm только обеспечивает Нет действительной формы? [дубликат]
я пытаюсь создать простую функцию загрузки файлов с помощью Django, используя следующий код / файлы -
Более или менее взято из этого примера: https://docs.djangoproject.com/en/5.0/topics/http/file-uploads/
forms.py:
from django import forms
class UploadFileForm(forms.Form):
title = forms.CharField(max_length=50)
file = forms.FileField()
views.py:
from django.http import HttpResponseRedirect
from django.shortcuts import render
from .forms import UploadFileForm
import os
import sys
def handle_uploaded_file(f):
path = os.path.abspath(os.path.dirname(sys.argv[0]))
fnFile = os.path.join(path, "gpp", "FILES", "QUESTIONS", "someFile.xyz")
print(fnFile)
with open(fnFile, 'wb+') as destination:
for chunk in f.chunks():
destination.write(chunk)
def home(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
print(request.POST)
print(request.FILES)
if form.is_valid():
print(f"Valid form")
handle_uploaded_file(request.FILES['file'])
return HttpResponseRedirect('/success/url/')
else:
print("No valid form")
else:
form = UploadFileForm()
return render(request, 'home.html', {'form': form})
В целом форма выглядит нормально, и я могу выбрать файл:
Но когда я ввожу что-то, это не работает, и в журнале появляется следующее сообщение:
[23/Mar/2024 10:02:35] "GET / HTTP/1.1" 200 1777
<QueryDict: {'csrfmiddlewaretoken': ['HWaddf1sBsKJc1k4CY9LiijIv1VAlxjWkRoFRixEP12rNDYyIx6zRYFC2MvPKIFm'], 'title': ['Test'], 'file': ['gpt.zip'], 'save': ['']}>
<MultiValueDict: {}>
No valid form
[23/Mar/2024 10:04:33] "POST / HTTP/1.1" 200 1869
Похоже, что request.FILES по какой-то причине пуст? Почему это не работает так, как задумано?