読者です 読者をやめる 読者になる 読者になる

[Python][Django] formの値を変更したい場合

request.POST は変更できないがcopyすれば大丈夫。
Djangoのquerydictがそんな仕様になってるらしい。

http://michilu.com/django/doc-ja/request_response/#querydict

formの値を変更したい場合は、FORMを作成する際のPOSTをコピーしてそのコピーした値を変更してやる

post = request.POST.copy()
post['hoge'] = 'hoge'
f = HogeForm(post)

なぜか setdefaultをやっても値がかわらなかったので、KeyErrorがでるのが嫌だが直接入れた