2010-11-15 36 views
0

我試圖建立一個表單,其中一個選擇列表可以從我傳入的創建表單對象的元組參數初始化。如何使用從動態查詢初始化的選擇列表創建django表單?

我試着做下面的工作,創建窗體。但是當我嘗試提交表單時,我得到一個is_valid()= false錯誤。在下面的例子中,myrooms變量是我想在表單初始化時動態加載的數據。這裏有幫助嗎?

class SessionInfoForm(forms.ModelForm): 

    def __init__(self, myrooms = None, *args, **kwargs): 
     super(SessionInfoForm, self).__init__(*args, **kwargs) 
     if myrooms != None: 
      self.fields['room'].choices = myrooms 

    class Meta: 
     model = SessionInfo 
     fields = ["title", "room", "viewer_limit", "starttime", "endtime", "billing_type", "billing_value"] 
+1

小挑剔:這是慣例/習慣寫'如果myrooms *不* None'(而不是'='!) – dcrosta 2010-11-15 23:06:35

+0

你能也是你初始化表單的視圖代碼?確保你總是傳遞'myroom'的相同值,當表單在請求後被初始化時! – 2010-11-15 23:06:54

回答

1

你很可能忘記驗證結果時,同一列表傳遞給myrooms

您必須通過它進行渲染和驗證。

0

只是改變self.fields['room'].choices = myroomsself.fields['room'].widget.choices = myrooms,我已經編輯了爲你的問題