dissdoc
Июнь 3, 2010 13:15:57
Пишу регистрацию пользователей. Пишу исключительно для обучения.
Меня интересует такой вопрос. Создал я форму и модель регистрации.
Так вот, где мне проверить существует пользователь с таким именем уже в БД или еще нет?
В форме? Или же все-таки в views.py?
И еще такой вопрос. Как обработать записанные данные? Т.е. избавиться (или написать предупреждение, что так делать нельзя) от спецсимволов в поле формы? Может в манах есть такое? Как это вообще называется?
Александр Кошелев
Июнь 3, 2010 13:17:24
dissdoc
Как это вообще называется?
Валидация
Kamber
Июнь 3, 2010 13:22:33
Может немного не в тему - но в модели можно написать unique=True… на то поле которое должно быть уникальным.
Если данное имя будет уже занято - то должна сформироваться ошибка, которую можно обработать.
dissdoc
Июнь 3, 2010 13:30:06
Почти на все вопросы ответы разрешил. Остался один вопрос - проверка на спецсимволы. В PHP была такая функция как htmlspecialchars. Есть вариант с помощью регулрных выражений написать обработку на ошибку скажим вот такого имени пользователя <b>UserSpecialChars</b> Сами понимаете, что <b> лишний - и такой логин не является корректным. Подскажите пожалуйста в каком направлении такое найти, по валидации не могу найти :(
Kamber, а я делаю сам вручную через форму)
tmt
Июнь 3, 2010 15:55:29
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)
tmt
Июнь 3, 2010 16:20:08
В догонку по валидации:
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.
dissdoc
Июнь 3, 2010 16:46:43
Хаха. Похоже очень даже.
Спасибо!