Note that this tutorial won't teach you Django, only how the Django integration is available in PyDev, so, if you're not familiar with Django, it's useful to learn a bit about how it works and then use this help to know how the PyDev Django integration can help you.

A bit on internals

The Django integration in PyDev works through 3 main configurations:

1. The project must be marked as a Django project inside of PyDev.

2. A 'DJANGO_MANAGE_LOCATION' string substitution variable must point to the project-relative location of manage.py.

3. A 'DJANGO_SETTINGS_MODULE' string substitution variable must contain the name of the settings module in that project.

And that's it, with those properly configured, all the Django-related actions should work (and the steps below will explain how those can be configured).

Creating a new project

Use the new project wizard through Ctrl+N > PyDev Django Project to create a new Django based project.

That wizard will use django-admin.py startproject to create the project and will properly set the string substitution variables used inside of PyDev so that DJANGO_MANAGE_LOCATION points to the created manage.py location and the DJANGO_SETTINGS_MODULE points to the settings module.

Using the Django integration in an existing project

For an existing project, just right click it and choose 'PyDev > Set as Django project'.

Note that the DJANGO_MANAGE_LOCATION and DJANGO_SETTINGS_MODULE will not be set at this time, but when executing an action that needs it, PyDev will ask about it.

Django actions

Django actions can be accessed right clicking a project with the Django configuration and choosing Django > action.

Another option is using (with focus on a PyDev editor):

ctrl+2+dj <enter> to open a dialog with the history of entered actions

ctrl+2+dj action_to_execute <enter> to already pass the action to be executed (e.g.: ctrl+2+dj help <enter>)

Interactive shell with Django

Note that the Shell with django environment action will create a shell properly configured with your settings, providing the default features from the PyDev shell, such as code completion, history, context assistants (ctrl+1), making an execfile of the editor, etc (see: Interactive Console for more details).

It can be activated through ctrl+2+dj shell (if on a PyDev Editor) or right-clicking the project > Django > Shell with django environment.

Run/Debug as Django

Run as Django/Debug as Django are available (note that they set the --noreload by default).

This will create a default Run configuration, so, you may edit it later through run > run configurations (or debug > debug configurations) if you want to change a parameter.

Note: to know how to rerun the last launch see: Rerun Last Launch on Launching_

Note 2: if the --noreload is not passed, only the parent process will be killed from Eclipse and the others will only be killed when they'd be reloaded (i.e.: on a code-change).

Run/Debug as Django with autoreload

If you don't want to se the --noreload flag, please take a look at the Remote Debugger for instructions on how to make the debugging work properly with the auto reload feature.