Setting DJANGO_SETTINGS_MODULE

Here's a bash function I use for Django development to quickly set DJANGO_SETTINGS_MODULE.

function setdsm() { 
    # add the current directory and the parent directory to PYTHONPATH
    # sets DJANGO_SETTINGS_MODULE
    export PYTHONPATH=$PYTHONPATH:$PWD/..
    export PYTHONPATH=$PYTHONPATH:$PWD
    if [ -z "$1" ]; then 
        x=${PWD/\/[^\/]*\/}               
        export DJANGO_SETTINGS_MODULE=$x.settings
    else    
        export DJANGO_SETTINGS_MODULE=$1 
    fi

    echo "DJANGO_SETTINGS_MODULE set to $DJANGO_SETTINGS_MODULE"
}

I put this in my .bash_profile, then a quick setdsm sets the DJANGO_SETTINGS_MODULE to the settings.py in the current directory and add the current directory and it's parent to PYTHONPATH.

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. All source code is released under a BSD License unless otherwise specified.

4 comments


October 16, 2008
Ro said:

Hi Chris,

1. i put the script into .bash_profile, which i had to create first
2. then i opened the konsole, entered into my projects dir which is on a windows drive (sth like /media/sda2/Document .../..),
3. called `django-admin.py runserver`

but i got the error "Settings cannot be imported because environment variable DJANGO_SETTINGS_MODULE is undefined"

any suggestion what might be the problem?


November 20, 2008
Boffo Bob said:

"windows drive" is the problem.

wtflol


November 21, 2008
Not Boffo Bob said:

Works - excellent.


February 19, 2009
Sampath Girish.M said:

Hi Chris Gemignani,
I am getting an error while running the following command 'python manage.py shell'
as:
function setdsm() error at '()'
I copied the function you placed here and got that error. Is there any rectification for the above problem, u can help me out and I will be very much thankful to u......

If possible post a reply to my email id please..... Its girishmsampath@gmail.com
so that i can solve my problem faster.

Thanks,
Sampath Girish.M

Your name

Email (optional, will not be shared)

Type the word "juice" (required to confuse the spammers)

Your comment


Add a comment