2009-12-20 9 views
6

La documentazione Django (http://docs.djangoproject.com/en/dev/topics/testing/#django.test.client.Client.post) dicono di fare questo:Come inviare upload di immagini nei test di Django?

>>> c = Client() 
>>> f = open('wishlist.doc') 
>>> c.post('/customers/wishes/', {'name': 'fred', 'attachment': f}) 
>>> f.close() 

ma quando faccio che il campo ha il messaggio di errore "Il file inviato è vuoto." Ha un odore di PIL ma il modulo funziona bene sul sito reale.

Leggere il file e inviarlo invece di solo un handle non funziona e si comporta come passare una stringa vuota.

risposta

6

OK Ho capito. Stavo usando la stessa immagine fittizia per più campi e Django non resetta il puntatore dopo aver convalidato il primo campo.

Anche l'esempio nella documentazione non mostra che le immagini devono essere aperte anche in modalità binaria.

+0

Spero che tu abbia attivato/aperto un ticket per correggere l'esempio nei documenti;) – SmileyChris

0

Penso che open si aspetti un percorso file relativo a dove viene chiamato da.

Non sono sicuro di dove si tratterebbe quando si esegue un test, ma forse proviamo con un percorso assoluto e vediamo se funziona?

+0

Sto utilizzando un percorso assoluto e l'immagine si apre bene. –

Problemi correlati