Проверка формы в Джанго - PullRequest
9 голосов
/ 15 июля 2009

Я только начал использовать django. Я сталкивался с формами, и мне нужно знать, какой из них является лучшим способом проверки форм. Будет ли это использовать формы django, или мы должны использовать javascript или некоторый язык сценариев на стороне клиента, чтобы сделать это?

Ответы [ 5 ]

16 голосов
/ 15 июля 2009

Вы должны ВСЕГДА проверять свою форму на стороне сервера, проверка на стороне клиента - только удобство только для пользователя.

При этом формы Django имеют переменную form.errors, которая показывает, были ли определенные поля формы неправильными.

{{form.name_of_field.errors}} может выдавать вам каждую отдельную ошибку каждого поля, которое заполнено неправильно. Подробнее здесь:

http://docs.djangoproject.com/en/dev/topics/forms/

5 голосов
/ 15 июля 2009

Существует подключаемое приложение Django ( django-ajax-forms ), которое помогает проверять формы на стороне клиента с помощью JavaScript. Но, как говорит AlbertoPL, используйте проверку на стороне клиента только в качестве меры юзабилити (например, сообщая пользователю, что его желаемое имя пользователя уже занято без перезагрузки страницы регистрации). Существует множество способов обойти проверку на стороне клиента, в большинстве случаев такую ​​же простую, как деактивация JavaScript.

Вообще говоря: предполагается, что все данные, поступающие извне, являются ошибочными, пока они не будут проверены.

4 голосов
/ 10 мая 2012

Только что натолкнулся на django-floppyforms, который, по-видимому, выполняет проверку на стороне клиента по умолчанию. Они используют HTML5, который поддерживает проверку на стороне клиента по умолчанию. Не уверен, что они также используют JavaScript, если браузер не поддерживает HTML5. Сам еще не пробовал.

Ссылка на django-floppyforms: Документация и Github

2 голосов
/ 17 марта 2015

Если вы используете загрузчик, вы можете просто добавить необходимый атрибут в поле формы. Например, если есть поле программы, вы можете проверить его следующим образом:

In Forms.py:

programme = forms.ChoiceField(course_choices,required=True, widget=forms.Select(attrs={'required':'required'}))

Примечание. Требуется ссылка на файлы начальной загрузки на странице .html этой формы.

0 голосов
/ 07 февраля 2013

Вам нужно будет сделать это JS. Это приложение объединяет формы с parsley.js для автоматической пометки форм правильными атрибутами data- *.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...