1. Pytest-Django

With pytest-django, you can take advantage of pytest's ecosystem in your Django project seamlessly. Besides the better API, I especially like the --nomigrations flag because it allows running tests without migrating the database. Perfect for TDD.

Also, Django's assertions are still available:

from pytest_django.asserts import assertTemplateUsed

2. Dash/Zeal

We look at documentation all the time, and clicking links while scrolling pages can be time-consuming. These apps provide instant, off-line search across multiple doc sets. Although not Django specific, Django's doc set is available on both:

3. django-debug-toolbar

The Django debug toolbar provides various debug information, from SQL queries run on a given request to the signals emitted. It also has a variety of community developed panels for extra details, like the template-profiler

4. django-extensions

The django-extensions is a collection of additional management commands made available through python manage.py. It provides reusable commands for job scheduling, template validation, among many others. One of my favorites is the graph_models, which provides a graphical overview of Django's models:

Credits: Django Software Foundation

5. IPython

In conjunction with django-extensions, if you have IPython available to your project, running python manage.py shell_plus will load your project's models into an IPython shell, which is super handy to explore the projects interconnections:

Share this post