创建视图中的表单是否已绑定?

时间:2012-10-24 09:11:16

标签: python django django-class-based-views

我有这段代码

class ObjectCreate(CreateView):

    def form_valid(self, form):

我想知道这个表格已经绑定到对象实例,我可以使用form.save或者我必须手动将它绑定到模型实例

2 个答案:

答案 0 :(得分:1)

是的,form_valid中的表单已绑定。

您可以通过查看ProcessFormView的代码来看到这一点。

def post(self, request, *args, **kwargs):
    form_class = self.get_form_class()
    form = self.get_form(form_class)
    if form.is_valid():
        return self.form_valid(form)

您可以看到self.get_form(form_class)实例化了绑定表单,只有在表单有效时才会调用form_valid方法。

请注意CreateView使用的ModelFormMixin默认保存对象 - 根据您要执行的操作,您可能不必覆盖form_valid

答案 1 :(得分:0)

您可以take form class并要求bounded

    form_class = self.get_form_class()
    if form.is_bound:
        ...