#13744: URLValidator doesnt add "http://" to the beginning of url string if user
forgets to write it
--------------------------------------+-------------------------------------
Reporter: michaelhjulskov | Owner: nobody
Status: new | Milestone:
Component: Forms | Version: 1.2-alpha
Resolution: | Keywords: URLValidator
Stage: Unreviewed | Has_patch: 0
Needs_docs: 0 | Needs_tests: 0
Needs_better_patch: 0 |
--------------------------------------+-------------------------------------
Changes (by Alex):
* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0
Old description:
> from django.forms.fields import URLField
> from django.core.validators import URLValidator
>
> class MyURLValidator(URLValidator):
> regex = re.compile(
> r'^(?:https?://)?' # http:// or https://
> r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+[A-Z]{2,6}\.?|'
> #domain...
> r'localhost|' #localhost...
> r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' # ...or ip
> r'(?::\d+)?' # optional port
> r'(?:/?|[/?]\S+)$', re.IGNORECASE)
>
> class MyURLField(URLField):
> def __init__(self, max_length=None, min_length=None,
> verify_exists=False,
> validator_user_agent=validators.URL_VALIDATOR_USER_AGENT, *args,
> **kwargs):
> super(MyURLField, self).__init__(max_length, min_length, *args,
> **kwargs)
> self.validators.append(MyURLValidator(verify_exists=verify_exists,
> validator_user_agent=validator_user_agent))
New description:
{{{
from django.forms.fields import URLField
from django.core.validators import URLValidator
class MyURLValidator(URLValidator):
regex = re.compile(
r'^(?:https?://)?' # http:// or https://
r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+[A-Z]{2,6}\.?|'
#domain...
r'localhost|' #localhost...
r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' # ...or ip
r'(?::\d+)?' # optional port
r'(?:/?|[/?]\S+)$', re.IGNORECASE)
class MyURLField(URLField):
def __init__(self, max_length=None, min_length=None,
verify_exists=False,
validator_user_agent=validators.URL_VALIDATOR_USER_AGENT, *args,
**kwargs):
super(MyURLField, self).__init__(max_length, min_length, *args,
**kwargs)
self.validators.append(MyURLValidator(verify_exists=verify_exists,
validator_user_agent=validator_user_agent))
}}}
Comment:
Please use the preview button, and consult WikiFormatting before posting.
--
Ticket URL: <http://code.djangoproject.com/ticket/13744#comment:1>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en.