Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 3, 2010 13:15:57

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка в БД существования записи

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

И еще такой вопрос. Как обработать записанные данные? Т.е. избавиться (или написать предупреждение, что так делать нельзя) от спецсимволов в поле формы? Может в манах есть такое? Как это вообще называется?



Офлайн

#2 Июнь 3, 2010 13:17:24

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Проверка в БД существования записи

dissdoc
Как это вообще называется?
Валидация



Офлайн

#3 Июнь 3, 2010 13:22:33

Kamber
От:
Зарегистрирован: 2010-05-05
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка в БД существования записи

Может немного не в тему - но в модели можно написать unique=True… на то поле которое должно быть уникальным.
Если данное имя будет уже занято - то должна сформироваться ошибка, которую можно обработать.



Офлайн

#4 Июнь 3, 2010 13:30:06

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка в БД существования записи

Почти на все вопросы ответы разрешил. Остался один вопрос - проверка на спецсимволы. В PHP была такая функция как htmlspecialchars. Есть вариант с помощью регулрных выражений написать обработку на ошибку скажим вот такого имени пользователя <b>UserSpecialChars</b> Сами понимаете, что <b> лишний - и такой логин не является корректным. Подскажите пожалуйста в каком направлении такое найти, по валидации не могу найти :(

Kamber, а я делаю сам вручную через форму)



Отредактировано (Июнь 3, 2010 13:32:37)

Офлайн

#5 Июнь 3, 2010 15:55:29

tmt
От:
Зарегистрирован: 2010-03-26
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка в БД существования записи

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)

Офлайн

#6 Июнь 3, 2010 16:20:08

tmt
От:
Зарегистрирован: 2010-03-26
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка в БД существования записи

В догонку по валидации:
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.



Офлайн

#7 Июнь 3, 2010 16:46:43

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка в БД существования записи

Хаха. Похоже очень даже.
Спасибо!



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version