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/3b324829-5daf-4975-bc60-244dba0ded53%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.