Statistics
| Branch: | Tag: | Revision:

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)