2012-07-20 13 views

Antwort

13

Der einfachste Weg ist es, die Werte als list oder tuple im dict angeben:

client.post('/foo', data={"key": ["value1", "value2"]}) 

Alternativ können Sie MultiValueDict als Wert verwenden.

+0

Was Django Formularfeld sollte Gebrauch zu reinigen/Validierung eines 'list' oder' tuple' von Werten, die Sie über client.post senden? – Medorator

3

Gerade lief in dieser Ausgabe! Leider hat Ihre Antwort nicht für mich funktioniert, in der FormView ich posten würde nur einen der Werte enthalten, nicht alle Werte

Sie sollten auch in der Lage sein, eine Querystring manuell erstellen und veröffentlichen Inhaltstyp mit x-www-form-urlencoded

some_str = 'key=value1&key=value2&test=test&key=value3' 
client.post('/foo/', some_str, content_type='application/x-www-form-urlencoded') 
0
from django.core.urlresolvers import reverse 
from django.utils.datastructures import MultiValueDict 
from django.utils.http import urlencode 

form_data = {'username': 'user name', 
      'address': 'street', 
      'allowed_hosts': ["host1", "host2"] 
      } 

response = client.post(reverse('new_user'), 
         urlencode(MultiValueDict(form_data), doseq=True), 
         content_type='application/x-www-form-urlencoded') 
Verwandte Themen