В качестве усовершенствования формы, добавим начальное значение для поля subject: I love your site! (Небольшое внушение не повредит.) Для этого следует воспользоваться аргументом initial при создании экземпляра формы:
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(
initial={'subject': 'I love your site!'}
)
return render_to_response('contact_form.html', {'form': form})
Теперь поле subject будет отображаться заполненным.
Следует отметить, что существует разница между передачей начальных данных и передачей данных, которые привязаны к форме. Разница заключается в том, что если просто передаёте начальные данные, то форма остаётся незаполненной, что она не будет содержать сообщений об ошибках[10].
[10] Авторы имеют в виду, что если при возникновении ошибки во время проверки данных и вы возвратите пользователю форму, передав данные в форму через initial, то никаких сообщений о возникших ошибках не сохранится. Примечание переводчика.
Пред. | Уровень выше | След. |
Установка максимального размера поля | Начало | Собственные правила проверки |
2 comments | Make a comment
дайте возможность удалять сообщения)
answer to Nelly_lucky
дайте возможность удалять сообщения)
Это спорный функционал. Можно будет ломать "ветку" обсуждения или спора