1 | Index: django/core/validators.py
|
---|
2 | ===================================================================
|
---|
3 | --- django/core/validators.py (revision 6913)
|
---|
4 | +++ django/core/validators.py (working copy)
|
---|
5 | @@ -23,6 +23,7 @@
|
---|
6 | _datere = r'\d{4}-\d{1,2}-\d{1,2}'
|
---|
7 | _timere = r'(?:[01]?[0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?'
|
---|
8 | alnum_re = re.compile(r'^\w+$')
|
---|
9 | +alnum_u_re = re.compile(r'^\w+$', re.U)
|
---|
10 | alnumurl_re = re.compile(r'^[-\w/]+$')
|
---|
11 | ansi_date_re = re.compile('^%s$' % _datere)
|
---|
12 | ansi_time_re = re.compile('^%s$' % _timere)
|
---|
13 | @@ -71,6 +72,11 @@
|
---|
14 | if not alnum_re.search(field_data):
|
---|
15 | raise ValidationError, _("This value must contain only letters, numbers and underscores.")
|
---|
16 |
|
---|
17 | +def isAlphaNumericU(field_data, all_data):
|
---|
18 | + if not alnum_u_re.search(field_data):
|
---|
19 | + raise ValidationError, _("This value must contain only alphanumeric in the Unicode character properties database.")
|
---|
20 | +
|
---|
21 | +
|
---|
22 | def isAlphaNumericURL(field_data, all_data):
|
---|
23 | if not alnumurl_re.search(field_data):
|
---|
24 | raise ValidationError, _("This value must contain only letters, numbers, underscores, dashes or slashes.")
|
---|
25 | Index: django/contrib/auth/tests.py
|
---|
26 | ===================================================================
|
---|
27 | --- django/contrib/auth/tests.py (revision 6913)
|
---|
28 | +++ django/contrib/auth/tests.py (working copy)
|
---|
29 | @@ -35,4 +35,6 @@
|
---|
30 | []
|
---|
31 | >>> a.user_permissions.all()
|
---|
32 | []
|
---|
33 | -"""
|
---|
34 | \ No newline at end of file
|
---|
35 | +>>> from django.core.validators import *
|
---|
36 | +>>> isAlphaNumericU(u'abcd', '')
|
---|
37 | +"""
|
---|
38 | Index: django/contrib/auth/forms.py
|
---|
39 | ===================================================================
|
---|
40 | --- django/contrib/auth/forms.py (revision 6913)
|
---|
41 | +++ django/contrib/auth/forms.py (working copy)
|
---|
42 | @@ -11,7 +11,7 @@
|
---|
43 | def __init__(self):
|
---|
44 | self.fields = (
|
---|
45 | oldforms.TextField(field_name='username', length=30, max_length=30, is_required=True,
|
---|
46 | - validator_list=[validators.isAlphaNumeric, self.isValidUsername]),
|
---|
47 | + validator_list=[validators.isAlphaNumericU, self.isValidUsername]),
|
---|
48 | oldforms.PasswordField(field_name='password1', length=30, max_length=60, is_required=True),
|
---|
49 | oldforms.PasswordField(field_name='password2', length=30, max_length=60, is_required=True,
|
---|
50 | validator_list=[validators.AlwaysMatchesOtherField('password1', _("The two password fields didn't match."))]),
|
---|