默认情况下,基于类的视图每个视图仅支持一个表单。但是还有其他方法可以满足您的需求。但是同样,这不能同时处理两种形式。这也适用于大多数基于类的视图以及常规形式。
views.py
class MyClassView(UpdateView):
template_name = 'page.html'form_class = myform1second_form_class = myform2success_url = '/'def get_context_data(self, **kwargs): context = super(MyClassView, self).get_context_data(**kwargs) if 'form' not in context: context['form'] = self.form_class(request=self.request) if 'form2' not in context: context['form2'] = self.second_form_class(request=self.request) return contextdef get_object(self): return get_object_or_404(Model, pk=self.request.session['value_here'])def form_invalid(self, **kwargs): return self.render_to_response(self.get_context_data(**kwargs))def post(self, request, *args, **kwargs): self.object = self.get_object() if 'form' in request.POST: form_class = self.get_form_class() form_name = 'form' else: form_class = self.second_form_class form_name = 'form2' form = self.get_form(form_class) if form.is_valid(): return self.form_valid(form) else: return self.form_invalid(**{form_name: form})模板



