我最近通过继承FormView
了解了Django表单,其中所需表单被分配到FormView.form_class
属性。表单验证后,将调用form_valid()
方法(针对该表单)。例如:Django:使用FormView时可能有多种形式?
from accounts.forms import SignUpForm, UpdateAccountForm, UpdateBillingForm
class SignUpView(FormView):
form_class = SignUpForm
def form_valid(self, form):
# code when form validates...
不过,我现在有一个情况下,我需要一个页面(在一时刻对用户可见的只有一种形式)的三个独特的形式。所以,我想在同一个视图中处理它们。
是否可以使用FormView的多表单页面?我不确定如何处理它,无论是将多种形式传递给视图(例如其他UpdateAccountForm和UpdateBillingForm),还是区分哪一个被提交/验证?什么是最好的方法?
看起来像它不可能与FormView控件(?)。每个这些[答案](http://stackoverflow.com/questions/1395807/proper-way-to-handle-multiple-forms-on-one-page-in-django),应该使用一个通用的视图,并添加前缀(?) – pete
我刚刚写了一个工具来完成这件事,截至目前只有部分记录,但类MultFormView只是一些代码来处理你正在尝试做什么https://github.com/dm03514/Django的CBV的工具包 – dm03514