Ticket #5786: form.diff

File form.diff, 3.1 KB (added by Bob Gao, 12 years ago)

a patch for this ticket

  • django/conf/global_settings.py

     
    335335
    336336LOGIN_REDIRECT_URL = '/accounts/profile/'
    337337
     338AUTH_USERNAME_PATTERN = '^\w+$'
    338339###########
    339340# TESTING #
    340341###########
  • django/contrib/auth/forms.py

     
    66from django import oldforms
    77from django.utils.translation import ugettext as _
    88
     9import re
     10from django.conf import settings
     11
    912class UserCreationForm(oldforms.Manipulator):
    1013    "A form that creates a user, with no privileges, from the given username and password."
    1114    def __init__(self):
    1215        self.fields = (
    1316            oldforms.TextField(field_name='username', length=30, max_length=30, is_required=True,
    14                 validator_list=[validators.isAlphaNumeric, self.isValidUsername]),
     17                validator_list=[self.isValidUsername]),
    1518            oldforms.PasswordField(field_name='password1', length=30, max_length=60, is_required=True),
    1619            oldforms.PasswordField(field_name='password2', length=30, max_length=60, is_required=True,
    1720                validator_list=[validators.AlwaysMatchesOtherField('password1', _("The two password fields didn't match."))]),
    1821        )
    1922
    2023    def isValidUsername(self, field_data, all_data):
     24        if not re.search(getattr(settings, 'AUTH_USERNAME_PATTERN'), field_data, re.U):
     25            raise validators.ValidationError, _('Username contains illegal characters.')
     26
    2127        try:
    2228            User.objects.get(username=field_data)
    2329        except User.DoesNotExist:
    24             return
     30            return     
    2531        raise validators.ValidationError, _('A user with that username already exists.')
    2632
    2733    def save(self, new_data):
  • django/contrib/auth/tests.py

     
    2323[]
    2424>>> a.user_permissions.all()
    2525[]
    26 """
    27  No newline at end of file
     26>>> from django.contrib.auth.forms import *
     27>>> cf = UserCreationForm()
     28>>> cf.isValidUsername("aa", '')
     29>>> cf.isValidUsername("b!", '')
     30Traceback (most recent call last):
     31...
     32ValidationError: [u'Username contains illegal characters.']
     33   
     34"""
  • docs/tutorial02.txt

     
    359359filters, date-hierarchies and column-header-ordering all work together like you
    360360think they should.
    361361
     362Customize the username pattern
     363======================================
     364
     365Open your settings file (``mysite/settings.py``, remember) and look at the
     366``AUTH_USERNAME_PATTERN`` setting. The default value is ''^\w+$'', which you
     367may change it to any pattern in UTF-8, for example, '^ab.*$'.
     368
    362369Customize the admin look and feel
    363370=================================
    364371
Back to Top