Код Django работает только в режиме отладки - PullRequest
1 голос
/ 12 апреля 2011

Очень запутался по этому поводу.Этот код в views.py работает, но только когда я отлаживаю с помощью Pycharm.Если я просто сделаю runserver, я получу 500 ошибок.

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")

Ошибка в Chrome Inspector

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

Нет атрибута cleaned_data?Но почему ...?

Ответы [ 2 ]

3 голосов
/ 12 апреля 2011

Атрибут cleaned_data становится доступным после вызова is_valid() в форме.Вы должны переместиться на cd = form.cleaned_data ниже if.

0 голосов
/ 12 апреля 2011

Атрибут cleaned_data формы Django недоступен, пока вы не вызовете is_valid() в форме.

form = PostForm(request.POST)

if form.is_valid():
    cd = form.cleaned_data
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...