Форум сайта python.su
Пишу регистрацию пользователей. Пишу исключительно для обучения.
Меня интересует такой вопрос. Создал я форму и модель регистрации.
Так вот, где мне проверить существует пользователь с таким именем уже в БД или еще нет?
В форме? Или же все-таки в views.py?
И еще такой вопрос. Как обработать записанные данные? Т.е. избавиться (или написать предупреждение, что так делать нельзя) от спецсимволов в поле формы? Может в манах есть такое? Как это вообще называется?
Офлайн
dissdocВалидация
Как это вообще называется?
Офлайн
Может немного не в тему - но в модели можно написать unique=True… на то поле которое должно быть уникальным.
Если данное имя будет уже занято - то должна сформироваться ошибка, которую можно обработать.
Офлайн
Почти на все вопросы ответы разрешил. Остался один вопрос - проверка на спецсимволы. В PHP была такая функция как htmlspecialchars. Есть вариант с помощью регулрных выражений написать обработку на ошибку скажим вот такого имени пользователя <b>UserSpecialChars</b> Сами понимаете, что <b> лишний - и такой логин не является корректным. Подскажите пожалуйста в каком направлении такое найти, по валидации не могу найти :(
Kamber, а я делаю сам вручную через форму)
Отредактировано (Июнь 3, 2010 13:32:37)
Офлайн
dissdoc
В PHP была такая функция как htmlspecialchars.
from django.utils.html import escape
print escape('<div class="q">Q & A</div>')
import cgi
print cgi.escape('<div class="q">Q & A</div>', True)
Отредактировано (Июнь 3, 2010 16:38:42)
Офлайн
В догонку по валидации:
http://docs.djangoproject.com/en/1.2/ref/forms/validation/#ref-forms-validation
и
http://docs.djangoproject.com/en/1.2/ref/validators/#ref-validators
В последней ссылке присмотритесь на:
validate_slug - A RegexValidator instance that ensures a value consists of only letters, numbers, underscores or hyphens.
Офлайн
Хаха. Похоже очень даже.
Спасибо!
Офлайн