7

를 호출되지 CBV 방법 form_valid() . 흥미롭게도 forms.py의 clean 메소드가 호출됩니다.장고 : 나는 다음과 같이 <code>form_valid()</code> 기능을 무시하고 내 <code>CreateView</code> 클래스에서

오류가 표시되지 않습니다. 따라서 표시 할 추적 코드가 없습니다. 사용자가 다시 양식으로 리디렉션됩니다. 이 문제의 원인은 무엇일까요? 저는 Django 1.5와 Python 2.7을 사용하고 있습니다.

def form_valid(self, form): 
    self.object = form.save(commit=False) 
    if self.request.user.is_authenticated(): 
     self.object.user = self.request.user 
    # Another computing etc 
    self.object.save() 
    return super(ActionCreateView, self).form_valid(form) 

추신 :

+3

'form_invalid' 메서드 내에서 print 문을 사용 해보고'POST'를 사용하고 있습니까? –

+1

'form_invalid' 메소드를 만들면 문제가 드러납니다. 제안 해 주셔서 감사합니다. 답변으로 의견을 작성하면 기꺼이 받아 들여 투표 할 수 있습니다. 고맙습니다. – neurix

+0

비슷한 문제가 생겼고 form_invalid도 도움이되었습니다. 양식에서 템플릿에 사용할 수없는 오류가 표시되어 표시되지 않습니다. @neurix와 닮았나요? –

답변

2

form.instance.user는 = self.request.user는

이 변형을 시도하십시오 잘못 정말 get_initial을 변경해야합니까? 당신이 코드에서 나는이 필요성을 보지 못합니다.

1

양식이 유효하지 않을 수 있습니다. form_invalid()를 재정의하고 해당 호출이 있는지 확인하거나 post()를 재정 의하여 POST중인 데이터를 확인할 수 있습니다.