我想採取現成的形式(即從帶有驗證的綁定數據的django.Forms.form
派生的類的對象),並將它作爲urlencode編碼,就像它使用GET一樣提交。有沒有內置的方法?我可以將Django表單轉換爲GET請求字符串嗎?
爲了說明爲什麼我要問這個問題,爲什麼我不能只叫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字符串。
由現成的我的意思是從'django.Forms.form'派生的窗體類的實例。我會澄清這個問題。我知道如何用我自己的字典構建一個GET字符串,我想從基於其字段的驗證表單中完成。 – Joe
恐怕我有點迷失在恰好當在這種形式的「流」中,這是假設發生的,但我已經用更多的例子更新了我的迴應。 –
假設我有一個帶有綁定數據的驗證表單(即我稱之爲「is_valid」,響應爲「真」)。這是從數據構建和初始化的。這可能是構造函數中提供的初始數據,它可能來自POST數據,它可能來自任何東西。這個表單對象是如何創建的並不重要。我想生成一個GET url編碼的字符串,它表示如果我從瀏覽器提交表單,表單將如何提交。 – Joe