2012-07-20 14 views

Respuesta

13

La forma más sencilla es especificar los valores como list o tuple en el dict:

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

Como alternativa se puede utilizar un MultiValueDict como el valor.

+0

Qué campo de formulario de Django debe ser el uso para limpiar/validar un '' list' o tuple' de valores que va a enviar a través de client.post? – Medorator

3

¡Solo encontré este problema! Desafortunadamente, su respuesta no funcionó para mí, en el FormView que estaba publicando solo extraería uno de los valores incluidos, no todos los valores

También debería poder construir una cadena de consulta manualmente y publicarla el uso de contenidos de tipo 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') 
Cuestiones relacionadas