2017-10-19 13 views
0

Je travaille sur une application Django existante et je dois être en mesure de télécharger un fichier.Obtenez 400 (réponse vide) lors de l'envoi d'un formulaire en plusieurs parties à django

Je lui envoie un formulaire en plusieurs parties afin que je puisse envoyer un fichier et quelques champs, mais le serveur récupère un 400, mais le serveur commet une erreur silencieuse et continue à fonctionner. Comment autoriser ma vue à accepter un formulaire en plusieurs parties?

Ma définition de la fonction de l'itinéraire est tout simplement:

@api_view(['POST']) 
def upload(request, pk) 
    print "hello" 

Il ne reçoit pas de bonjour, donc quelque part dans la boîte magique de Django cette erreur JSON est INTERVENUES. Quelqu'un peut-il me donner une idée de l'endroit où chercher? J'ai vérifié notre fichier urls.py et ne vois rien qui pourrait rendre cette décision ou interrompre une demande et notre fichier init .py est vide. runserver n'est même pas un fichier ... Je suppose que c'est juste plus de magie django.

(Python: 2.7, Django: 1.10.6)

+0

J'ai essayé d'ajouter MultiPartParser à DEFAULT_PARSER_CLASSES dans settings.py, mais j'ai quand même un 400 silencieux. –

+0

Cela fonctionne maintenant. J'ai dû supprimer les en-têtes accept et Content-Type. Quelque chose de magique dans Django échouait silencieusement sur ceux que je suppose. –

Répondre

0

J'envoyais la demande avec un en-tête Content-Type comme forme multipart, une fois que je l'ai enlevé cet en-tête ma demande a été acceptée à nouveau. Lorsque j'ai supprimé l'en-tête, un champ de limite a été ajouté au type de contenu et je suppose que c'était nécessaire pour Django de ne pas échouer silencieusement.

Je ne sais toujours pas pourquoi Django a échoué en silence.