2012-01-19 12 views
3

ModelForm内のModelMultipleChoiceFieldのクエリーセットを更新しようとしています。ModelFormのModelMultipleChoiceFieldのクエリーセットを動的に更新します。

BaseWriteForm次のようにModelFormサブクラスであること、私のクラスは次のようになります。この場合

class MyWriteForm(BaseWriteForm): 
    """The form for an authenticated user, to compose a message.""" 

    recipients = forms.ModelMultipleChoiceField(label=_('To'), 
               widget=forms.SelectMultiple(attrs={'class': 'chzn-select'}), 
               queryset = User.objects.all()) 


    def __init__(self, users_list, **kw): 
     self.fields['recipients'].queryset = User.objects.filter(pk__in=users_list) 

     super(BaseWriteForm, self).__init__(**kw) 


    class Meta(BaseWriteForm.Meta): 
     fields = ('recipients', 'subject', 'body') 

私が午前: 'MyWriteForm' オブジェクトが無属性 'フィールド'

感謝しています!

答えて

9

super() call()の後に移動してください。

def __init__(self, users_list, **kw): 
    super(BaseWriteForm, self).__init__(**kw) 
    self.fields['recipients'].queryset = User.objects.filter(pk__in=users_list) 
関連する問題