|Version 7 (modified by pb@…, 8 years ago) (diff)|
Better Error Messages
I'm starting this page as a place to collect error messages that could stand improvement, or which are misleading or confusing in certain contexts. Most of us have had the experience of getting a "weird" message, puzzling it out (perhaps with help from django-users or #django) and then moving on. Later it can be hard to remember what the problem was.
This is an experiment to see if having a dedicated place to describe these cases as we encounter them can help organize a quality-control effort. Good error messages make for more productive developers. (And it helps newbies be more self-supporting, too.)
Some of these may seem like quick patches but I know that others will take a bit of consideration -- that's why the wiki page rather than individual tickets.
For now, let's try dividing them into sections by major module. Within those sections suggested format is: error message, explanatory context (often important -- a message that is very helpful in one context can be confusing in another), suggested improvements/changes.
django.core.exceptions.ImproperlyConfigured: Could not load database backend: cannot import name connection. Is your DATABASE_ENGINE setting (currently, 'mysql') spelled correctly? Available options are: 'ado_mssql', 'dummy', 'mysql', 'postgresql', 'sqlite3'
Context: Encountered while hacking on the db backend, which means its possibly very obscure.
Suggestion: Django can determine whether the DATABASE_ENGINE setting is valid; it doesn't need to ask.
OperationalError: Unable to close due to unfinalised statements
Context: SQLite file permissions are incorrect (directory or DB file lack write permission)
Suggestion: Check file permissions when running with SQLite backend and warn user if they seem incorrect
Ticket #1732 -- a problem that elicits no error message, but should.
'NoneType' object has no attribute 'get_field_sets'
Context: One or more models that are referenced by ForeignKey from another model are missing their inner Admin class. Possible other causes as well. See ticket #1808.
Suggestion: Check relevant Admin settings during model validation?
Ticket #1791 suggests better error messages in cases where application dependencies are not satisfied.
See this thread on the django-developers list for discussion of error suppression in the template engine