Найти - Пользователи
Полная версия: Проверка в БД существования записи
Начало » Django » Проверка в БД существования записи
1
dissdoc
Пишу регистрацию пользователей. Пишу исключительно для обучения.
Меня интересует такой вопрос. Создал я форму и модель регистрации.
Так вот, где мне проверить существует пользователь с таким именем уже в БД или еще нет?
В форме? Или же все-таки в views.py?

И еще такой вопрос. Как обработать записанные данные? Т.е. избавиться (или написать предупреждение, что так делать нельзя) от спецсимволов в поле формы? Может в манах есть такое? Как это вообще называется?
Александр Кошелев
dissdoc
Как это вообще называется?
Валидация
Kamber
Может немного не в тему - но в модели можно написать unique=True… на то поле которое должно быть уникальным.
Если данное имя будет уже занято - то должна сформироваться ошибка, которую можно обработать.
dissdoc
Почти на все вопросы ответы разрешил. Остался один вопрос - проверка на спецсимволы. В PHP была такая функция как htmlspecialchars. Есть вариант с помощью регулрных выражений написать обработку на ошибку скажим вот такого имени пользователя <b>UserSpecialChars</b> Сами понимаете, что <b> лишний - и такой логин не является корректным. Подскажите пожалуйста в каком направлении такое найти, по валидации не могу найти :(

Kamber, а я делаю сам вручную через форму)
tmt
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
В догонку по валидации:
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
Хаха. Похоже очень даже.
Спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB