Bonjour,

Pour un projet je voudrais récupérer deux fichiers entrez pas l'utilisateur via deux input, pour appliquer un script externe.

Mon problème est que j'obtiens une erreur car Django n'arrive pas à localiser ces input. J'ai donc un objet vide au lieu du fichier.

Voici mes codes:

home.html
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!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" required><br>
        <input type="file" name="file2" required><br>
 
        <input type="submit" value="Valider"><br>
    </form>
</body>
</html>

views.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
from django.contrib import admin
from django.urls import include, path
from .views import *
 
urlpatterns=[
    path('',home,name="home"),
    path('external/',external, name="external")
]
architecture:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
DjangoProject
    |
     -views.py
     -urls.py
     -scripts
        |
         -extScript.py
 
templates
    |
     -home.html
et l'erreur précise que f1 est de type <NoneType>.
Je précise que j'ai tenté de mettre f1=request.FILES['file1'] et qu'il me renvoi que 'file1' est introuvable.

Si quelqu'un a une idée
Merci !