|
Оглавление
|
Представьте, что мы выложили форму на боевой сервер и к нам начали приходить сообщения. Но есть одна проблема — некоторые сообщения содержат всего одно-два слова, что недостаточно для нашей цели. Мы решили применить новую политику проверки: четыре слова или больше, пожалуйста.
Существует ряд методов реализации собственного механизма
проверки в форме. Если наше правило будет использоваться в
других проектах, мы может создать собственный тип
поля. Большинство пользовательских проверок не используются
повторно, хотя и могут быть внедрены в класс
Раз нам требуется дополнительная проверка поля
message, добавим метод
from django import forms
class ContactForm(forms.Form):
subject = forms.CharField(max_length=100)
email = forms.EmailField(required=False)
message = forms.CharField(widget=forms.Textarea)
def clean_message(self):
message = self.cleaned_data['message']
num_words = len(message.split())
if num_words < 4:
raise forms.ValidationError("Not enough words!")
return message
Библиотека автоматически ищет любой метод, который начинается с clean_ и заканчивается на имя поля. Если такой метод существует, он используется во время выполнения проверки поля.
Данные метод
Мы просто используем комбинацию Важно то, что мы явно возвращаем обработанное значение поля в конце метода. Это позволяет нам модифицировать значение (или преобразовать его в другой тип Python) в рамкам данного метода. Если мы забудем воспользоваться оператором return, тогда будет возвращёт None и оригинальное значение будет утеряно. |
Увидели ошибку?
Выделите её мышкой и нажмите
-
Обработано:
1049
49
130
71
Версия книги
1.0
2.0
Версия 2.0 в процессе перевода!
Мой луч
Многообразие света
Полезное
Актуальные вакансии,
Python работа
для python-разработчиков.
Скачать в формате
CHM от 2 сентябряЗаказать PDF файл можно через почту, чат, джаббер. Всего 2WMZ. Содержимое точно соответствует содержимому сайта. Чем чаще заказываете — тем больше перевожу. Русская группа
Ускорить процесс перевода!
R130494980980
Z425285133788 E112528079659 U327380922061 Книга помогла реализовать:
|
| © 2008-2009 Ruslan Popov @ gmail.com | Powered by Django 1.1 beta 1 SVN-11114 |