我有這樣的工作代碼創建django表單時,'initial'參數必須首先出現?
f = SomeForm(request.POST)
當我試圖把它修改成
f = SomeForm(request.POST, initial={'spam', 4})
它沒有工作,在「初始」 wasnt選擇(「垃圾郵件」是ModelChoiceField),但是當我嘗試
f = SomeForm(initial={'spam', 4})
它的工作(選定的值是正確的)。我在這裏錯過了什麼嗎?如果它的事項,繼承人什麼的的init方法看起來像
def __init__(self, *a, **ka):
super(SomeForm, self).__init__(*a, **ka)
....#more codes
有沒有一種方法,使初始數據的工作,而不必刪除第一個參數?謝謝
編輯:它不必是「初始」,只要我可以在ModelChoiceField上放一些預定義的值。條件=有一個request.POST,但表格尚未提交(帖子來自另一頁)
謝謝,但POST來自另一頁通過行動帖子,所以表格尚未發佈尚未。最好的方法是什麼? – kusut 2010-07-16 12:48:14
您可以將POST作爲初始值傳遞:'SomeForm(initial = request.POST)'或者只是在傳遞數據之前修改'request.POST',如果不是request.POST.get(「spam」):request。 POST [「垃圾郵件」] = 4' – cji 2010-07-16 13:00:51