2011-10-25 10 views
5

Il titolo dice quasi tutto: utilizzo raw_post_data in un paio di visualizzazioni, e quindi ho bisogno che il client di test conceda l'accesso correttamente ad esso.Accesso a raw_post_data nel client di prova django

Ho copiato la stringa raw_post_data, da una richiesta di simulazione, l'ho passata a json.loads(), e poi ho usato il dict risultante come dati POST per il client di test. Poi, ho impostato il tipo di contenuto su "application/json" - questo fa apparire raw_post_data, ma non è lo stesso raw_post_data della richiesta fittizia.

+0

Potresti pubblicare le (differenze tra i) dati visualizzati e la richiesta che ti aspetti di vedere? – jro

risposta

4

Quando si modifica il tipo di contenuto nel client di test, il parametro data non viene più analizzato come dizionario ma inviato direttamente. Prova a copiare la stringa JSON direttamente come parametro dei dati nella tua richiesta di posta, dovresti riceverla in raw_post_data nella tua applicazione.

2

solo bisogno di seguire i passi di seguito:
        1. impostare l'attributo dati al stringa di.
        2. quindi impostare la content_type attributo application/octet-stream.

payload = {'k1':'v1'} 
    data = json.dumps(payload) 
    response = self.client.post(url, data=data, content_type='application/octet-stream', **self.auth_headers) 
+0

Questo ha funzionato come un fascino. Riferimento: https://docs.djangoproject.com/en/1.9/_modules/django/test/client/ – Blas

Problemi correlati