我一直在寻找如何使用更新的基于 Django 类的视图方法在一个页面上显示 2 个独特的表单。
任何人都可以参考任何东西吗?或者提供一个基本的例子。谷歌不是我的“朋友”。
关键是您甚至不必使用其中一个FormView
子类来处理表单。您只需添加用于手动处理表单的机器。在您确实使用FormView
子类的情况下,它只会处理 1 并且仅处理 1 表单。因此,如果您需要两种表格,您只需手动处理第二张表格。我将DetailView
其用作基类只是为了表明您甚至不必从FormView
类型继承。
class ManualFormView(DetailView):
def get(self, request, *args, **kwargs):
self.other_form = MyOtherForm()
return super(ManualFormView, self).get(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
self.other_form = MyOtherForm(request.POST)
if self.other_form.is_valid():
self.other_form.save() # or whatever
return HttpResponseRedirect('/some/other/view/')
else:
return super(ManualFormView, self).post(request, *args, **kwargs)
def get_context_data(self, **kwargs):
context = super(ManualFormView, self).get_context_data(**kwargs)
context['other_form'] = self.other_form
return context