I've found it very hard to find an IDE that works properly with Django.
In particular, there seems to be no way debug code while using the Django dev server with its autoreload feature. This means that either you don't debug code, or you have to restart the Django dev server every time you make a change. Very annoying.
Also, I haven't been able to find any Eclipse/IDEA level features in a Python IDE... things like being able to ctrl+click on an object to see where it was defined, or a "Find Usages" feature.
All in all, I think there is a huge opportunity to innovate in the web IDE department. Python, RoR, and even PHP all still need a killer IDE.
My experience with PyDev+Extensions/Eclipse: [1] got (great?) interactive debugging, [2] fairly smart code completion (works for most Django stuff, see below), [3] plus all the other Eclipse niceties: a decent HTML/CSS editor (with WST), SVN integration, Mylyn with trac integration (manage trac tickets from inside Eclipse: nice), etc.
I configured the Django source as another project in Eclipse and make it a dependency in all my Django-based PyDev projects. This makes it possible to click on a class or function name and directly jump to its definition/declaration/source. That's better than any documentation.
Maybe the reason this works for me is that I also got the PyDev extensions? Even if it's just to support the PyDev developer with some cash, there are a few additional features in the extension that definitely improve productivity; see http://www.fabioz.com/pydev/. I configured the integration with PyLint, which helps a lot with coding style, especially since I am--for all intents and purposes--a novice to Python (4+ months of working with it).
Here's my take on the whole debugging Django issue:
a) In my experience, only a small fraction of development time is spent debugging. With the proper code structure/patterns/unit testing, little debugging should be necessary. This may be a controversial statement, but that's how I see it. For all the normal development use cases, just running the Django development server with default settings is fine and one can still edit inside Eclipse and get automatic reload. I have used debugging mostly to discover the framework (and Python) itself and found it extremely insightful, but did not need the reload feature then. Discovery can also be done in the interactive console, though.
b) If there is indeed a need to have a rapid change-debug cycle, the keyboard shortcuts to start a debug configuration in Eclipse allow a quick stop/restart of the development server with the --noreload option. The request can be made with the test client provided by Django; see http://www.djangoproject.com/documentation/testing/#the-test..., so one keyboard shortcut gets you to your first break point, without even using the browser.
I know Eclipse is a bit on the heavy side. A few gigs of RAM and a dual-core CPU help. I also do a fair amount of cross-language development and like the Eclipse platform for the breath of available language and tool support. In the past, I've used it extensively for PHP development and of course Java.
by changing the run configuration for manage.py: run the manage.py file (open it and hit F9), the console will show you a help message. Now go to the menu and find your run configuration for manage.py. Navigate to the arguments tab and just add runserver --noreload. Thats it.
In particular, there seems to be no way debug code while using the Django dev server with its autoreload feature. This means that either you don't debug code, or you have to restart the Django dev server every time you make a change. Very annoying.
Also, I haven't been able to find any Eclipse/IDEA level features in a Python IDE... things like being able to ctrl+click on an object to see where it was defined, or a "Find Usages" feature.
All in all, I think there is a huge opportunity to innovate in the web IDE department. Python, RoR, and even PHP all still need a killer IDE.