I believe I may have found the issue. I was using the validator incorrectly. I was passing the string to `__init__` like so ` URLValidator('\\')`, instead of passing it to the `__call__` method like this `URLValidator()('\\')`.
On Tuesday, March 4, 2014 4:13:12 PM UTC-8, rectang...@gmail.com wrote: > > When entering two backslashes into the URL validator it raises an > `sre_constants.error`. As per the > docs<https://docs.djangoproject.com/en/dev/ref/validators/#writing-validators>, > it > seems like the validator should catch this and then chain a ` > ValidationError<https://docs.djangoproject.com/en/dev/ref/exceptions/#django.core.exceptions.ValidationError>` > > to the exception. This appears to be an issue with Django's integration > with Python's regex implementation. This may just be my misunderstanding of > the way Django handles validation, but it seems like *any *form > of invalid input should raise a > `ValidationError<https://docs.djangoproject.com/en/dev/ref/exceptions/#django.core.exceptions.ValidationError> > `. > > I found this while running Django 1.6.2 on Python 3.3.0 on Windows 7. > > This session reproduces the bug on my system. > > >>> from django.core.validators import URLValidator > >>> URLValidator('\\') > Traceback (most recent call last): > File "C:\Python33\lib\sre_parse.py", line 195, in __next > c = self.string[self.index + 1] > IndexError: string index out of range > > During handling of the above exception, another exception occurred: > > Traceback (most recent call last): > File "<string>", line 301, in runcode > File "<interactive input>", line 1, in <module> > File "C:\Python33\lib\site-packages\django\core\validators.py", line 32, > in __init__ > self.regex = re.compile(self.regex) > File "C:\Python33\lib\re.py", line 214, in compile > return _compile(pattern, flags) > File "C:\Python33\lib\functools.py", line 258, in wrapper > result = user_function(*args, **kwds) > File "C:\Python33\lib\re.py", line 274, in _compile > return sre_compile.compile(pattern, flags) > File "C:\Python33\lib\sre_compile.py", line 493, in compile > p = sre_parse.parse(p, flags) > File "C:\Python33\lib\sre_parse.py", line 717, in parse > source = Tokenizer(str) > File "C:\Python33\lib\sre_parse.py", line 183, in __init__ > self.__next() > File "C:\Python33\lib\sre_parse.py", line 197, in __next > raise error("bogus escape (end of line)") > sre_constants.error: bogus escape (end of line) > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/a3b9d7b8-29d0-45fe-ab46-58d01f73cc17%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.