Request.FILES.get пуст в проекте Django

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

Моя проблема в том, что я получаю ошибку, потому что Django, похоже, не может найти эти входы. Поэтому у меня пустой объект вместо файла.

Вот мои коды:

home.html

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Home</title>
</head>
<body>
    <h1>Home</h1>
    <form action="/external/" method="post" enctype="multipart/form-data">
        {% csrf_token %}
        Input xlsx file :<br><br>
        <input type="file" name="file1" accept=".xml" required><br>
        <input type="file" name="file2" accept=".xml" required><br>
 
        <input type="submit" value="Valider"><br>
    </form>
</body>
</html>

views.py

from django.shortcuts import render
from .scripts.extScript import *
 
def home(request):
    return render(request, 'home.html')
 
def external(request):
 
    f1=request.FILES.get('file1')
    f2=request.FILES.get('file2')
 
    extScript(f1,f2)
    return render(request,'home.html')

urls.py

from django.contrib import admin
from django.urls import include, path
from .views import *
 
urlpatterns=[
    path('',home,name="home"),
    path('external/',external, name="external")
]

архитектура:

DjangoProject
   |
    -views.py
    -urls.py
    -scripts
        |
         -extScript.py  

templates
        |
         -home.html

и ошибка указывает, что тип f1 - < NoneType >

Хочу заметить, что я пытался поставить f1=request.FILES['file1'], а он мне пишет, что 'file1' не найден : raise MultiValueDictKeyError(key).

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

Спасибо!

Это потому, что вы отправляете файлы с помощью "POST" запроса, который вы должны прослушать на ваших представлениях, потому что сначала он начинается с GET представления, которое не имеет файлов. Поэтому код должен выглядеть следующим образом:

def external(request):
    if request.POST:
        f1=request.FILES.get('file1')
        f2=request.FILES.get('file2')
 
        extScript(f1,f2)
    return render(request,'home.html')

Я не знаю, но, возможно, вам нужно изменить submit на кнопку <button type="submit">Upload</button> вместо <input>.

Вернуться на верх