Отличная книга! Мне очень понравилась поэтому и пишу.)
Если будете перевыпускать книгу то исправьте пожалуйста ошибки:
----------------------------------------------------------------
стр.163. Ваш первый класс формы
ошибка: имена переменных в Pytone не должны содержать тире.
А так же эта ошибка встречается и в других местах (e-mail)
правильный код:
# forms.py
from django import forms
class ContactForm(forms.Form):
....subject = forms.CharField()
....email = forms.EmailField(required=False)
....message = forms.CharField()
------------------------------------------------------------------------
стр. 166. Использование объектов Form в представлениях
ошибки в отступах.
правильный код:
# views.py
from django.shortcuts import render_to_response
from mysite.contact.forms import ContactForm
def contact(request):
....if request.method == 'POST':
........form = ContactForm(request.POST)
........if form.is_valid():
............cd = form.cleaned_data
............send_mail(
................cd['subject'],
................cd['message'],
................cd.get('email',
'noreply@example.com'),
................['siteowner@example.com'],
............)
............return HttpResponseRedirect('/contact/thanks/')
....else:
........form = ContactForm()
....return render_to_response('contact_form.html', {'form': form})
----------------------------------------------------------------------
стр.168. Определение начальных значений
ошибки в отступах.
правильный код:
def contact(request):
....if request.method == 'POST':
........form = ContactForm(request.POST)
........if form.is_valid():
............cd = form.cleaned_data
............send_mail(
................cd['subject'],
................cd['message'],
................cd.get('email',
'noreply@example.com'),
................['siteowner@example.com'],
............)
............return HttpResponseRedirect('/contact/thanks/')
....else:
........form = ContactForm(
............instal={'subject': 'Мне очень нравиться ваш сайт!'}
........)
....return render_to_response('contact_form.html', {'form': form})