Quelqu'un peut-il me aider à repérer mon problème ici:MultiValueDictKeyError En utilisant Appengine SDK et Django pour File Upload
Je suis en train de mettre en œuvre une routine de téléchargement de fichiers en utilisant AppEngine et django, et j'ai rencontré une erreur MultiValueDictKeyError. Il semble que le fichier ne le fasse pas de la page Web au serveur.
Une partie de ceci est un exercice d'apprentissage, donc je ne veux pas utiliser un djangoform pour traiter les données pour moi.
J'utilise, version SDK 1.1.8, version django 1.1.0 alpha et google-AppEngine-django R68
Mon html ressemble à ceci:
<form method="POST" action="." enctype="multipart/form-data">
Title: <input type="text" name="title"/>
Text: <input type="text" name="txt"/>
Image: <input type="file" name="imgfile"/>
<input type="submit"/>
</form>
Mon python ressemble ceci:
def index (demande):
if request.POST:
newtxt = TestModel()
newtxt.title = request.POST.get('title', '')
newtxt.txt = request.POST.get('txt', '')
blFileData = request.FILES['imgfile'].read()
if blFileData:
newtxt.img = blFileData
newtxt.put()
return render_to_response('index.html', ({'filestore': query,}))
L'erreur ressemble à ceci:
MultiValueDictKeyError à/
" 'imgFile' Clé introuvable dans"
Demande Méthode: POST URL de demande: http://localhost:8000/ Exception Type: MultiValueDictKeyError Exception Valeur: « Key 'imgFile' introuvable dans " Exception Emplacement: /Users/david/Sites/testsite/myapp/views.py dans l'index, ligne 19 Exécutable Python: /Library/Frameworks/Python.framework/Versions/2.5/Resources/Python.app/Contents/MacOS/Python Version Python: 2.5.2
/Users/david/Sites/testsite/myapp/views.py dans l'index blFileData = request.FILES [ 'imgFile']. Read() ... ▼ vars locaux Variable Valeur newtxt
TestModel (** {'txt': u'World ',' img ': Aucun,' titre ': u'Hello'}) demande , POST :, COOKIES: {}, META: {'APPLICATION_ID': 'google -app-engine-django ',' AUTH_DOMAIN ':' gmail.com ',' CONTENT_LENGTH ':' 21 ',' CONTENT_TYPE ':' application/x-www-format-urlencoded ',' CURRENT_VERSION_ID ':' 1.1 ', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/xml, application/xml, application/xhtml + xml, texte/html; q = 0.9, texte/plain; q = 0.8, image/png, * /*;q=0.5 ',' HTTP_ACCEPT_LANGUAGE ':' en ',' HTTP_CONNECTION ':' keep-alive ',' HTTP_HOST ':' localho st: 8000 ',' HTTP_REFERER ':' http://localhost:8000/ ',' HTTP_USER_AGENT ':' Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; fr) AppleWebKit/525.27.1 (KHTML, comme Gecko) Version/3.2.1 Safari/525.27.1 ',' PATH_INFO ': vous'/',' PATH_TRANSLATED ': vous'/Users/david/Sites/testsite/main .py ',' QUERY_STRING ':' ',' REMOTE_ADDR ':' 127.0.0.1 ',' REQUEST_METHOD ':' POST ',' SCRIPT_NAME ':' ',' SERVER_NAME ':' localhost ',' SERVER_PORT ':' 8000 ',' SERVER_PROTOCOL ':' HTTP/1.0 ',' SERVER_SOFTWARE ':' Développement/1.0 ',' TZ ':' UTC ',' USER_EMAIL ':' ',' wsgi.errors ':', mode 'w' à 0x130b0>, 'wsgi.input':, 'wsgi.multiprocess': False, 'wsgi.multithread': False, 'wsgi.run_once': True, 'wsgi.url_scheme': 'http', 'wsgi.version' : (1, 0)}>
Pensées? Merci, David