2013-07-03 47 views
2

我有以下的Django形式:Django表單拒絕使查詢集多種選擇字段

class AccountForm(Form): 

    evalTypes = django_fields.MultipleChoiceField(label="Default Evaluation Forms", widget=django_widgets.SelectMultiple) 

    def __init__(self, *args, **kwargs):   
     super(AccountForm, self).__init__(*args, **kwargs) 

     # GET POSSIBLE LIST OF EVALUATIONS 

     self.fields["evalTypes"].queryset = CustomForm.objects.filter(author__permissions__name__in=['manager']) 

     for q in self.fields["evalTypes"].queryset: 
      print q # THIS PRINTS ALL THE CORRECT VALUES 

的問題是,在加載頁面時,出現的唯一的事情就是空的選擇框。這很奇怪,因爲我清楚地證明queryset正在正確填充。我可能會錯過什麼?

回答

4

MultipleChoiceField需要choices,而不是queryset

使用ModelMultipleChoiceField代替

evalTypes = forms.ModelMultipleChoiceField(label="Default Evaluation Forms", widget=forms.SelectMultiple, queryset=None) 
+0

謝謝,這做到了。唯一需要將查詢集參數傳遞給MultipleChoiceField。所以我做了: MultipleChoiceField(標籤=「默認評估表單」,widget = forms.SelectMultiple,queryset =無) 然後在稍後添加查詢集。 – Deomachus

+0

是的。我錯過了將該部分添加到答案中。 – karthikr