Django FormView не имеет контекста формы
при определении производного класса 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 }}
не передается в шаблон.
Что я делаю не так?
1 ответов
в контексте 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