Formulaire django avec plusieurs champs de fichier
Comment faire face à de multiples champs de fichier dans Django. Par exemple, si je n'avais qu'un champ de formulaire, je voudrais transmettre la demande.FILES['fichier'] à une fonction de gestion. Mais quelle est la façon d'aller lorsqu'il y a plus de fichiers?
source d'informationauteur Bigdinrock
Vous devez vous connecter pour publier un commentaire.
Je suis en retard à la fête, mais j'ai été à essayer de comprendre ce pendant un certain temps et avoir enfin une solution.
Regardez le code utilisé ici: https://code.djangoproject.com/ticket/12446
Vous pouvez accéder à multipart valeurs avec getlist. Si mon formulaire HTML est:
Mon django code de processus, il devrait ressembler à:
L'écriture d'un champ de formulaire/widget pour gérer cela correctement est ma prochaine étape. Je suis encore assez nouveau à l'aide de Django, donc je suis en train d'apprendre que je vais.
request.FILES.get('filename', None)
répond à l'existence d'une forme-champ nommé comme ceci:Si vous aviez deux de ces champs:
Puis
request.FILES.get('file1', None)
etrequest.FILES.get('file2', None)
devrait vous donner ces fichiers respectivement.La raison pour cela est multipart mime. Les trois parties (les données de formulaire, fichier1, fichier2) doit être envoyé et Django UploadFileHandler divise en dehors de cela dans
request.POST
etrequest.FILES
respectivement.Ici, c'est un bon lien pour cette réponse: https://github.com/Chive/django-multiupload. Cependant, puisque je n'étais pas à l'aide de ModelForm j'ai dû faire quelques modifications.
Dans la perspective que j'ai écrit ci-dessous le code et les fichiers enregistrés sur le disque: