Opened 14 years ago
Closed 14 years ago
#16229 closed Cleanup/optimization (invalid)
django.core.validators not usable without a DJANGO_SETTINGS_MODULE
| Reported by: | Jonas H. | Owned by: | nobody |
|---|---|---|---|
| Component: | Core (Other) | Version: | dev |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
https://code.djangoproject.com/browser/django/trunk/django/core/validators.py#L16 reads (after catching a Django settings ImportError):
It's OK if Django settings aren't configured.
However, using the validate_email validator crashes without a DJANGO_SETTINGS_MODULE:
>>> from django.core.validators import validate_email
>>> validate_email('foo')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "django/core/validators.py", line 120, in __call__
super(EmailValidator, self).__call__(value)
File "django/core/validators.py", line 40, in __call__
raise ValidationError(self.message, code=self.code)
File "django/core/exceptions.py", line 60, in __init__
message = force_unicode(message)
File "django/utils/encoding.py", line 71, in force_unicode
s = unicode(s)
File "django/utils/functional.py", line 108, in __unicode_cast
return self.__func(*self.__args, **self.__kw)
File "django/utils/translation/__init__.py", line 87, in ugettext
return _trans.ugettext(message)
File "django/utils/translation/__init__.py", line 49, in __getattr__
if settings.USE_I18N:
File "django/utils/functional.py", line 180, in __getattr__
self._setup()
File "django/conf/__init__.py", line 40, in _setup
raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
Change History (3)
comment:1 by , 14 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
| Type: | Bug → Cleanup/optimization |
| Version: | 1.3 → SVN |
comment:2 by , 14 years ago
| Resolution: | invalid |
|---|---|
| Status: | closed → reopened |
Reopening as this comment should be fixed.
comment:3 by , 14 years ago
| Resolution: | → invalid |
|---|---|
| Status: | reopened → closed |
I agree with melinath that fixing the comment is unnecessary - it is clear enough that it refers to settings being optional for the purpose of setting URL_VALIDATOR_USER_AGENT.
This is not a bug. It's not even a documentation error. Looking at the code, the comment only refers to the setting of URL_VALIDATOR_USER_AGENT and makes no claims about the running of the EmailValidator. I suppose the comment could be clarified. However, it doesn't really seem necessary.