13

FormView 派生クラスを定義する場合:

class PrefsView(FormView):
    template_name = "prefs.html"
    form_class = MyForm         # What's wrong with this?
    def get(self,request):
        context = self.get_context_data()
        context['pagetitle'] = 'My special Title'
        context['form'] = MyForm    # Why Do I have to write this?
        return render(self.request,self.template_name,context)

が定義されているため、この行context['form'] = MyFormは必要ないと思っていましたが、それがないとテンプレートに渡されません。 私が間違っていることは何ですか?form_class{{ form }}

4

2 に答える 2

17

コンテキストでformは、フォーム クラスではなく、インスタンス化されたフォームである必要があります。を定義することform_classは、インスタンス化されたフォームをコンテキスト データに含めることとは完全に分離されています。

get_context_dataあなたが与えた例については、代わりにオーバーライドする方が良いと思いますget

def get_context_data(self, **kwargs):
    context = super(PrefsView, self).get_context_data(**kwargs)
    context['pagetitle'] = 'My special Title'
    return context
于 2013-10-30T15:57:10.430 に答える