|
Table of contents
|
Вот так можно переписать наше представление
Файл from django.core.mail import send_mail
from django.shortcuts import render_to_response
from mysite.books.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})
Файл <html>
<head>
<title>Contact us</title>
</head>
<body>
<h1>Contact us</h1>
{% if form.errors %}
<p style="color: red;">
Please correct the error{{ form.errors|pluralize }} below.
</p>
{% endif %}
<form action="" method="post">
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit">
</form>
</body>
</html>
Посмотрите, как много ненужного можно убрать! Библиотека выполняет вывод формы, её проверку, конвертацию данных и повторное отображение формы в случае ошибок.
Попробуйте запустить это локально. Загрузите форму, отправьте её
без данных, отправьте её с неправильным адресом электронной
почты, затем заполните её правильными данными и
отправьте. (Конечно, в зависимости от конфигурации вашего
почтового сервера, вы можете получить ошибку при вызове
|
Found misprint?
Select it with the mouse and hit Enter
-
Processed:
33
1
199
25
The full repository of DjangoBook translation you can get on GitHub.
We appreciate your patches!
We are glad to hear your questions, comments or suggestions!
(Open in new tab)
Users number: 601
Русская группа
Ускорить процесс перевода!
ЯМ:41001223475816
|
| © 2008-2012 Ruslan Popov @ gmail.com | Powered by Django 1.2.5 |
Первой мыслью возникает "а как же моё уютненькое
<textarea name="message" rows="10" cols="50">
куда же оно делось? Такое некрасивое message = forms.Charfield()"
Сразу гуглы, ModelForm, Textarea, стресс...