我想要一個表格有一個區域的下拉列表,根據其他一些數據預選其中一個區域。爲了使一個區被選中,我需要初始設置是這樣的:試圖獲得下拉選擇Form.initial
class myExtendedContactInfoForm(ExtendedContactInfoForm):
districts = [(x.id, x.district) for x in District.objects.all()]
district = forms.ChoiceField(choices=districts, required=False, initial=2)
如果我實例myExtendedContactInfoForm 沒有設置初始,下拉完美的作品:
form = myExtendedContactInfoForm(contact=contact)
但是,對於其餘的表單來說,我實際上需要通過初始的數據,所以我mus t這樣做:
form = myExtendedContactInfoForm(contact=contact, initial=init_data)
但是,這使得在下拉停止工作的選擇。原因在文檔中解釋。它說,在Django的docs:
注意,如果一個字段定義初始和你包括初始實例化窗體時,那麼後者最初將具有優先權。
我該如何解決這個問題?這有點像名稱空間污染。
非常感謝, 托馬斯
做kwargs.update({'initial':{'district':2}})會更好嗎?例如如果沒有設置kwargs ['initial'] – jpic 2012-03-27 09:40:00
@jpic不,'{'initial':{'a':1,'b':2}}。update({'initial':{'district':2 – DrTyrsa 2012-03-27 09:47:45