Add DJANGO_SETTINGS_MODULE to enable pythoncomplete or whatever for django in vim
Vim script Python
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


As many of you know, django use an environment variable call DJANGO_SETTINGS_MODULE to determine the settings like which database system should django use.

While django use the environment variable in module definition level, some of django modules could not be loaded without the correct value. This is quite annoying and Vim omnicompletion system like pythoncomplete could not parse the djanog module, and thus often the omni completion of django is not available in Vim.

vim-django-support automatically find the settings module from the current working directory and apply that to DJANGO_SETTINGS_MODULE. This makes Vim internal python allows to load django modules, and allows to do omni completions.


I recommend you to use some package manager such as neobundle.vim or Vundle.vim. The following is an example in neobundle.vim

NeoBundle 'lambdalisue/vim-django-support'


vim-django-support use pure vim script to find the settings module thus what you need to do is just install it. It has no dependencies.


With default settings, vim-django-support try to find the settings module in a directory tree from the current directory (the current directory and its sub directories) everytime you open a file which file type is 'python' or 'htmldjango'. If you prefer to use a different directory rather than the current directory, you can specify the directory with g:django_support#project_root or b:django_support#project_root. If you don't want vim-django-support to find the settings module everytime when you open the pytyon file, specify 0 to g:django_support#auto_activate_on_filetype, and if you don't want vim-django-support to activate in vim starting, specify 0 to g:django_support#auto_activate.