2016-11-25 3 views
0

クエリーセットやその他のビューロジックから選択した場合は、choicesをフォームセットにどのように供給するのですか?クエリーセットやその他のビューロジックからの選択があった場合、フォームセットに選択肢を与える方法は?

Iは、次のようにforms.pyでセットアップをフォームセットた:

class MCQuestionAnswerForm(forms.Form): 
    question = forms.CharField() 
    mcq_answer_choice = forms.ChoiceField(widget=forms.RadioSelect) 


MCQuestionAnswerFormSet = formset_factory(MCQuestionAnswerForm, extra=0) 

Iはchoicesがクエリセットまたは他のビューロジックの結果であろうフォームセットインスタンスにchoicesviews.py異なるセットに供給する必要があります。私はその問題についてform_kwargsを使うことができますか?もしそうなら、どうしたらいいですか?

編集:

申し訳ありませんが、私は私が変更したいchoicesについて明確ではありませんでした。 choicesviews.pyに供給されることになるmcq_answer_choiceフィールド

class MCQuestionAnswerForm(forms.Form): 
    question = forms.CharField() 
    mcq_answer_choice = forms.ChoiceField(widget=forms.RadioSelect, choices=SOME_CHOICES_LIST) 

SOME_CHOICES_LISTで初期パラメータです。これは可能ですか?

答えて

1
公式ドキュメントから

class MCQuestionAnswerForm(forms.Form): 
    question = forms.CharField() 
    mcq_answer_choice = forms.ChoiceField(widget=forms.RadioSelect) 

    def __init__(self, *args, **kwargs): 
     self.extra = kwargs.pop('extra') 
     super(MyArticleForm, self).__init__(*args, **kwargs) 

     # You have now use the value of self.extra to construct or alter your form body 
     # For example: 
     self.fields['mcq_answer_choice'].initial = self.extra 

MCQuestionAnswerFormSet = formset_factory(MCQuestionAnswerForm, extra=0) 
+0

あなたOptimusCrimeをありがとうございます。あなたのソリューションはまだ私の新しい「編集」で動作しますか? – SaidAkh

関連する問題