Djangoのtest clientでは、POST
リクエストを実行し、リクエストデータをdict
として指定できます。データキーの複数の値を持つDjangoのテストクライアント
<select multiple>
または<input type="checkbox">
のフィールドを模倣したデータを送信する場合は、データdict
の1つのキーに複数の値を送信する必要があります。
どうすればよいですか?
Djangoのtest clientでは、POST
リクエストを実行し、リクエストデータをdict
として指定できます。データキーの複数の値を持つDjangoのテストクライアント
<select multiple>
または<input type="checkbox">
のフィールドを模倣したデータを送信する場合は、データdict
の1つのキーに複数の値を送信する必要があります。
どうすればよいですか?
最も簡単な方法は、dict
でlist
またはtuple
などの値を指定するには、次のとおりです。
client.post('/foo', data={"key": ["value1", "value2"]})
代わりにあなたが値としてMultiValueDict
を使用することができます。
この問題が発生しました。残念ながら、あなたの答えは私のために働いていませんでした。FormView
私はそれに含まれている値のうちの1つを取り出すだけで、値のすべてを取り出すことはありませんでした。
あなたは手動でクエリ文字列を構築し、
some_str = 'key=value1&key=value2&test=test&key=value3'
client.post('/foo/', some_str, content_type='application/x-www-form-urlencoded')
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')
コンテンツタイプ
x-www-form-urlencoded
を使用すると、どのようなDjangoのフォームフィールド 'list'か、client.postを経由して送信されている値の' tuple'を検証/きれいに使用すべきですか? – Medorator