Уведомления

Группа в Telegram: @pythonsu

#1 Март 18, 2011 12:36:07

I159
От:
Зарегистрирован: 2010-12-09
Сообщения: 85
Репутация: +  0  -
Профиль   Отправить e-mail  

cleaned_data

Делаю форму отправляющую письмо на мыло.

if request.method == 'POST':
if OrderForm(request.POST).is_valid():
form = OrderForm(request.POST)
cd = form.cleaned_data
subj = (cd['city'], cd['address'], cd['phone'], cd['email'], cd['memory'], cd['payment'])
send_mail('Заказ телефона',
subj,
('exemple@cexemple.com'), ['exemple2@gexemple2.com'])
return HttpResponseRedirect('/mail_sent/')
form = OrderForm()
return render_to_response('order.html', {'form': form,})
Выводится ошибка: Exception Type: AttributeError at /order/
Exception Value: ‘OrderForm’ object has no attribute ‘cleaned_data’

Почему нет атрибута cleaned_data у объекта формы? Что не правильно?
Благодарю за ответ.



Офлайн

#2 Март 18, 2011 12:46:05

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

cleaned_data

I159
if OrderForm(request.POST).is_valid():
form = OrderForm(request.POST)
Вы делаете валидацию, а потом пересоздаете форму, а cleaned_data появляется только после is_valid(), который для объекта формы в переменной form не сделан. Поэтому делать надо так:
form = OrderForm(request.POST)
if form.is_valid():



Офлайн

#3 Март 18, 2011 12:47:12

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

cleaned_data

потому что надо прочесть что-то по питону и документацию по джанге.

cleaned_data появится только после is_valid(), а ты это всё сделал на другом инстансе формы.

http://docs.djangoproject.com/en/dev/topics/forms/#using-a-form-in-a-view посмотри как надо, и сравни с хренью, что ты написал.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version