Удлинение Django - PullRequest
       14

Удлинение Django

2 голосов
/ 15 июля 2011

Я использую этот фрагмент, который позволяет пользователям только вводить адрес электронной почты, чтобы зарегистрироваться для моего приложения: http://djangosnippets.org/snippets/686/

Все почти идеально работает.Проблема в том, что у пользователя есть адрес электронной почты длиной более 30 символов.Я получаю «Убедитесь, что это значение содержит не более 30 символов (оно имеет 40)».ошибка.

Это потому, что имя пользователя должно быть только 30 символов.Есть ли простой способ просто сказать Django, что имя пользователя может быть длиннее?Похоже, для этого должно быть достаточно прямое переопределение.

Ответы [ 2 ]

1 голос
/ 15 июля 2011

Это на самом деле совсем не просто.Это требует создания подкласса пользовательской модели и ее повсеместного использования.Мне никогда не приходилось делать это, для этого случая, но это, вероятно, вызовет значительные проблемы с интерфейсом администратора.Вы также можете отредактировать исходный код django, чтобы выполнить его (ick).

Или даже использовать это решение: Может ли имя dhango auth_user.username быть varchar (75)?Как это можно сделать?

Хотя это довольно уродливо.

Возможно, вам лучше написать бэкэнд аутентификации, чтобы использовать поле электронной почты для аутентификации, а не поле имени пользователя.Чтобы заполнить имя пользователя (что необходимо), вы просто сгенерируете какое-то случайное уникальное имя пользователя, возможно, путем хеширования или использования UUID.

0 голосов
/ 15 июля 2011

Надеюсь, это решение поможет вам: http://www.micahcarrick.com/django-email-authentication.html

...