Opened 8 years ago

Closed 8 years ago

#9482 closed (fixed)

Can't import anything that depends on DANGO_SETTINGS_MODULE in project's `` file.

Reported by: Tai Lee Owned by: nobody
Component: Core (Other) Version: 1.0
Severity: Keywords: DJANGO_SETTINGS_MODULE settings import
Cc: Triage Stage: Unreviewed
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: UI/UX:


I've got some basic code to register signal handlers in my project's, as this seems the only place certain (or as close to certain as possible) to execute whenever Django is started with the runfcgi, runserver, shell, etc. management commands.

For example, if I import settings from django.conf, or any other module that relies on settings:

from django.conf import settings
if settings.DEBUG:


from django.db import models

The following exception is raised:

ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

The reason is because adds DJANGO_SETTINGS_MODULE to os.environ *after* importing the project module.

As far as I can tell, the fix is easy. Just move the assignment to os.environ up a few lines, before the import. I can't see how this could possibly break any existing code, nor any reason *not* to do it. We're not adding any code or functionality, just executing it earlier.

Attachments (1)

9482-DJANGO_SETTINGS_MODULE-r9295.diff (1018 bytes) - added by Tai Lee 8 years ago.

Download all attachments as: .zip

Change History (3)

comment:1 Changed 8 years ago by Tai Lee

Has patch: set
Needs documentation: unset
Needs tests: unset
Patch needs improvement: unset

Changed 8 years ago by Tai Lee

comment:2 Changed 8 years ago by Jacob

Resolution: fixed
Status: newclosed

Fixed in [9843]. Thanks for fucking up my commit message, git!

Note: See TracTickets for help on using tickets.
Back to Top