Fiex #5331 -- Modified newforms URLField to prepend http:// if no protocol is specified by the user. Thanks, SmileyChris.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@6173 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2007-09-14 07:02:55 +00:00
parent 3358e2fec7
commit 20ecbbd9e7
2 changed files with 12 additions and 8 deletions

View File

@ -416,6 +416,9 @@ class URLField(RegexField):
self.user_agent = validator_user_agent self.user_agent = validator_user_agent
def clean(self, value): def clean(self, value):
# If no URL scheme given, assume http://
if value and '://' not in value:
value = u'http://%s' % value
value = super(URLField, self).clean(value) value = super(URLField, self).clean(value)
if value == u'': if value == u'':
return value return value

View File

@ -1623,10 +1623,6 @@ u'http://200.8.9.10:8000/test'
Traceback (most recent call last): Traceback (most recent call last):
... ...
ValidationError: [u'Enter a valid URL.'] ValidationError: [u'Enter a valid URL.']
>>> f.clean('example.com')
Traceback (most recent call last):
...
ValidationError: [u'Enter a valid URL.']
>>> f.clean('http://') >>> f.clean('http://')
Traceback (most recent call last): Traceback (most recent call last):
... ...
@ -1657,10 +1653,6 @@ u'http://www.example.com'
Traceback (most recent call last): Traceback (most recent call last):
... ...
ValidationError: [u'Enter a valid URL.'] ValidationError: [u'Enter a valid URL.']
>>> f.clean('example.com')
Traceback (most recent call last):
...
ValidationError: [u'Enter a valid URL.']
>>> f.clean('http://') >>> f.clean('http://')
Traceback (most recent call last): Traceback (most recent call last):
... ...
@ -1714,6 +1706,15 @@ Traceback (most recent call last):
... ...
ValidationError: [u'Ensure this value has at most 20 characters (it has 37).'] ValidationError: [u'Ensure this value has at most 20 characters (it has 37).']
URLField should prepend 'http://' if no scheme was given
>>> f = URLField(required=False)
>>> f.clean('example.com')
u'http://example.com'
>>> f.clean('')
u''
>>> f.clean('https://example.com')
u'https://example.com'
# BooleanField ################################################################ # BooleanField ################################################################
>>> f = BooleanField() >>> f = BooleanField()