2013-07-19 47 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