root / monkey_patch / models.py @ 2a2ea58f
History | View | Annotate | Download (826 Bytes)
1 | 2a2ea58f | Leonidas Poulopoulos | from django.utils.translation import ugettext as _ |
---|---|---|---|
2 | 2a2ea58f | Leonidas Poulopoulos | from django.db.models.signals import class_prepared |
3 | 97e42c7d | Leonidas Poulopoulos | from django.core.validators import MaxLengthValidator |
4 | 2a2ea58f | Leonidas Poulopoulos | from flowspy.monkey_patch import MAX_USERNAME_LENGTH |
5 | 97e42c7d | Leonidas Poulopoulos | |
6 | 2a2ea58f | Leonidas Poulopoulos | def longer_username(sender, *args, **kwargs): |
7 | 2a2ea58f | Leonidas Poulopoulos | if sender.__name__ == "User" and sender.__module__ == "django.contrib.auth.models": |
8 | 2a2ea58f | Leonidas Poulopoulos | sender._meta.get_field("username").max_length = MAX_USERNAME_LENGTH()
|
9 | 2a2ea58f | Leonidas Poulopoulos | # For Django 1.2 to work, the validator has to be declared apart from max_length
|
10 | 2a2ea58f | Leonidas Poulopoulos | sender._meta.get_field("username").validators = [MaxLengthValidator(MAX_USERNAME_LENGTH())]
|
11 | 2a2ea58f | Leonidas Poulopoulos | sender._meta.get_field("username").help_text = _("Required, %s characters or fewer. Only letters, numbers, and @, ., +, -, or _ characters." % MAX_USERNAME_LENGTH()) |
12 | 2a2ea58f | Leonidas Poulopoulos | class_prepared.connect(longer_username) |