Кириллические имена пользователей в Django

Череп, русскими никами нельзя, потому что в django.contrib.auth.users так сделано. Можно, конечно, переписать, но усилия не будут оправданы, IMHO.

Вот, кстати, можешь pull-request'ы делать, если питон знаешь. :)
https://github.com/selevit/code-live.ru

selevit, а вот это не оно? Больно похоже:

class AbstractUser(AbstractBaseUser, PermissionsMixin):
    """
    An abstract base class implementing a fully featured User model with
    admin-compliant permissions.

    Username, password and email are required. Other fields are optional.
    """
    username = models.CharField(_('username'), max_length=30, unique=True,
        help_text=_('Required. 30 characters or fewer. Letters, digits and '
                    '@/./+/-/_ only.'),
        validators=[
            validators.RegexValidator(r'^[\w.@+-]+$', _('Enter a valid username.'), 'invalid')
        ])

Я не знаю как в django/python с кодировками, но я бы попробовал:

        validators=[
            validators.RegexValidator(r'^[0-9a-zA-ZабвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ.@+-]+$', _('Enter a valid username.'), 'invalid')
        ]

Может и прокатит.

PS. Django никогда не пробовал. Качнул архив development version. По питону читал описание языка, но не практикую. Так что с pull-request'ами — это ты уж сам ;-)

PPS. Мы как-то отдалились от темы ветки. Может «отщепишь» тему?

О, спасибо, что подсуетился. Посмотрю, можно ли валидатор переопределить по-человечески, когда все дела разгребу.

Регулярку, кстати, можно покороче сделать.

pattern = re.compile(r'^[\w.@+-]+$', re.U)
validators.RegexValidator(pattern, _('...'), 'invalid')

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.