2011-04-12 2 views
1

매우 혼란 스럽습니다. views.py의 코드는 Pycharm을 사용하여 디버깅 할 때만 작동합니다. 방금 runserver을하면 500 오류가 발생합니다.Django 코드는 디버그에서만 작동합니다.

views.py :

def add_post(request): 
if request.method == 'POST': 
    form = PostForm(request.POST) 
    cd = form.cleaned_data 
    if form.is_valid(): 
     print "valid" 
     post = Post(nickname=cd['nickname'], body=cd['body'], category=cd['category']) 
     post.save() 

     return HttpResponse("success") 

return HttpResponseServerError("fail") 

오류

크롬 경감

 <th>Exception Value:</th> 
    <td><pre>&#39;PostForm&#39; object has no attribute &#39;cleaned_data&#39;</pre></td> 

없음 속성 cleaned_data에서 볼 수 있듯이? 하지만 왜 ...?

답변

3

cleaned_data 속성은 양식에서 is_valid()을 호출 한 후 사용할 수있게됩니다. cd = form.cleaned_dataif 아래로 이동해야합니다.

+0

고마워요. 그게 이상한데 왜 디버그에서 작동할까요? – rabbid

+0

잘 모르겠다! 예외가 발생합니다. 변수 모니터/'watch'에서 is_valid()를 호출하는 것과 같이 Pycharm의 디버그 프로세스에서 어떤 일이 발생할 수 있습니까? (궁금한 점이 있으시면 대답을 '수락 함'으로 표시하십시오.) – Arjen

+0

와우! 같은 문제가 있었어! 그것은 미친 짓이야,하지만 코드는 디버그와 함께 일했다 : / – MatheusJardimB

0

양식에서 is_valid()을 호출해야만 장고 양식의 cleaned_data 속성에 액세스 할 수 있습니다.

form = PostForm(request.POST) 

if form.is_valid(): 
    cd = form.cleaned_data 
    ... 
관련 문제