既製のフォーム (つまり、django.Forms.form
検証済みのバインドされたデータから派生したクラスのオブジェクト) を取得し、GET で送信されたかのようにそれを urlencode したいと考えています。組み込みの方法はありますか?
なぜ私がこの質問をするのか、なぜ単に を呼び出すことができないのかを示すために、これからurlencode
の出力は " " になるはずbox=on
です。
from django import forms
from urllib import urlencode
class DemoForm(forms.Form):
box = forms.BooleanField(required=False)
instance = DemoForm({"box": True}) # it's irrelevant how this data is supplied
instance.is_valid()
print "encoded:", urlencode(instance.cleaned_data)
実際には " box=True
" です。これurlencode
は、形式をエンコードしていないため、クリーンな値をエンコードしているためです (信じてください、BooleanField
これが最も単純なケースです)。
そこで、フォームを GET 文字列であるかのようにエンコードする方法を求めています。正しい GET 文字列。