2013-07-19 49 views
1

我在我的应用程序中有一个ModelForm,我想在其中修改init函数以添加一些自定义。Django - 在窗体__init__中调用超级窗体在“GET”窗体上启动窗体验证

初始化被注释掉,然后表单工作并正确验证。当我覆盖初始化并转到表单渲染的url时,它会自动显示“Field xyz is required”

问题的原因是什么?

class CreateListView(FormMixin, ListView): 

    def get_context_data(self, **kwargs): 
     self.object_list = self.get_queryset() 
     data = super(ListView, self).get_context_data() 
     data['object_list'] = self.get_queryset() 
     data['form'] = self.get_form(self.form_class) 
     return data 

    def post(self, request, *args, **kwargs): 
     form = self.form_class(request.POST) 
     if form.is_valid(): 
      form = form.save() 
      return HttpResponseRedirect(form.get_absolute_url()) 
     return self.form_invalid(self.get_context_data()) 



class ActionGroupForm(forms.ModelForm): 

    class Meta: 
     model = ActionGroup 

    def __init__(self, *args, **kwargs): 
     super(ActionGroupForm, self).__init__(args, kwargs) 

回答

6

你缺少***

super(ActionGroupForm, self).__init__(*args, **kwargs) 
+0

哇我完全失明! :D感谢您的帮助! :) – Efrin