Django的测试客户端具有多个数据键值

bra*_*ers 10 django

Django的测试客户端允许您执行POST请求并将请求数据指定为dict.

但是,如果我想发送模仿<select multiple><input type="checkbox">字段的数据,我需要为数据中的单个密钥发送多个值dict.

我该怎么做呢?

bra*_*ers 18

最简单的方法是将值指定为a listtuplein dict:

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

或者,您可以使用a MultiValueDict作为值.


dm0*_*514 5

刚刚遇到这个问题!不幸的是,你的回答对我不起作用,FormView我发布的内容中,它只会提取其中包含的值之一,而不是所有值

您还应该能够手动构建查询字符串并使用内容类型发布它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')
Run Code Online (Sandbox Code Playgroud)