11 votes

Django : Enregistrer un fichier téléchargé dans un FileField

Je me sens un peu stupide d'avoir à poser cette question Mais je n'arrive pas à trouver de documentation à ce sujet.

Si j'ai un Model con FileField comment puis-je remplir un fichier téléchargé FILE dans ce FileField ?

Par exemple, j'aimerais faire quelque chose comme ça :

class MyModel(Model):
    file = FileField(...)

def handle_post(request, ...):
    mymodel = MyModel.objects.get(...)
    if request.FILES.get("newfile"):
        mymodel.file = request.FILES["newfile"]

Mais ça ne semble pas fonctionner.

19voto

David Wolever Points 34304

Eh bien, mes soupçons ont été confirmés : Je suis un idiot :)

La méthode que j'ai décrite dans ma question est, en fait, correcte - elle ne fonctionnait pas parce que j'avais oublié d'inclure les éléments suivants enctype="multipart/form-data" sur le formulaire.

Quoi qu'il en soit, je vais laisser cette question ici, au cas où d'autres personnes auraient le même problème.

0voto

Alfishe Points 347

J'ai également eu des problèmes avec le fichier qui n'était pas vraiment envoyé au serveur lorsque l'attribut de nom n'était pas spécifié dans la balise d'entrée.

<input type="file" name="somename">

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X