Opened 9 years ago
Closed 9 years ago
#27389 closed Cleanup/optimization (wontfix)
Cannot use QueryDict without configuring settings first
| Reported by: | Jaap Roes | Owned by: | nobody |
|---|---|---|---|
| Component: | HTTP handling | 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
This is not really a bug, but I was surprised by this behaviour:
>>> from django.http import QueryDict
>>> q = QueryDict('a=1&a=2&b=3&c=4&c=5&d')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/path/to/lib/python3.4/site-packages/django/http/request.py", line 377, in __init__
encoding = settings.DEFAULT_CHARSET
File "/path/to/lib/python3.4/site-packages/django/conf/__init__.py", line 53, in __getattr__
self._setup(name)
File "/path/to/lib/python3.4/site-packages/django/conf/__init__.py", line 39, in _setup
% (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_CHARSET, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
The QueryDict implementation relies on two Django settings DEFAULT_CHARSET and DATA_UPLOAD_MAX_NUMBER_FIELDS, both have sane defaults ('utf-8' and 1000) and are probably rarely overruled in user settings. Would it be acceptable to just use these values if settings aren't configured?
Change History (3)
comment:3 by , 9 years ago
| Resolution: | → wontfix |
|---|---|
| Status: | new → closed |
No real use case. I was just trying to use the QueryDict in simple quick (throwaway) python script and was surprised it didn't work standalone.
I'll resolve it as wontfix because I cannot be bothered to write a patch ;-)
I guess it's a question of how much effort it will take and if it's possible to write tests. Would you like to offer a patch?