-
django-environ – Environment variables
-
django-filter – Powerful filters based on Django QuerySets
-
django-guardian – Per object permissions in Django
-
django-sql-explorer – Share data via SQL queries
-
django-tables2 – HTML tables with pagination/sorting
Admin
-
django-grappelli – A jazzy skin for the admin
-
django-hijack – Admins can log in and work on behalf of other users without having to know their credentials
-
django-import-export – Import/export data more easily with admin integration
-
django-admin-honeypot – Configure a honeypot to see who’s trying to hack your site
-
django-loginas – “Log in as user” for the Django admin
Views and Forms
-
django-braces – helpful mixins for Django’s class-based views.
-
django-crispy-forms – control the rendering behaviour of forms with the {% crispy %} tag.
-
django-bleach – advanced input cleaning.
-
django-autocomplete-light – add autocompletion to your forms.
-
django-shapeshifeter – handle multiple forms in a single view. Useful when your CRUD app starts shifting towards workflow-focused interfaces.
-
django-extra-views – more class-based views, which can come in handy.
Frontend & APIs
-
django-webpack-loader – include bundles built with webpack into your templates. Really useful if you have non-trivial JS in your project.
-
django-pipeline – an asset packaging library for Django. No Webpack in sight, which can feel like a blessing sometimes. I myself prefer using Webpack these days, but this is a valid option as well.
-
Django REST framework (DRF) – build RESTful APIs. It’s really good!
-
graphene-django – build a GraphQL endpoint for your project. REST is fine, but frontend devs love to have a single GQL endpoint. They are very convenient.
-
django-cors-headers – handle CORS (cross origin resource sharing) by including the right headers. Useful if your backend is on another domain than your frontend.
Data-Related Functionality
-
django-taggit – add tags to any of your models! It’s simple to use, and fits well into most projects.
-
django-filter – let users filter a list of objects themselves through a form.
-
django-tables2 – display your data in nifty tables outside of the admin interface (works with django-filter).
-
django-sql-explorer – write SQL queries on your Django-owned data and see results in a nice interface. A quick way to get going with reporting.
-
djangoql – add a more advanced query language to the admin. This can be a nice compromise before investing more into BI tools or writing custom scripts.
-
django-import-export – get data in and out of your app using CSV, JSON and other formats. Exactly what it sounds like and very handy.
APIs
-
django-rest-framework – Web APIs for Django
-
django-cors-headers – If your back-end and front-end are on different servers, you need this
-
django-rest-auth – REST API endpoints for authentication and registration
-
django-rest-knox – Authentication Module for django-rest-auth
-
djoser – REST implementation of Django auth
-
django-rest-framework-simplejwt – JSON web tokens for DRF
-
django-webpack-loader – Transparently use webpack with Django
-
graphene-django – GraphQL for Django
Async
Commands
-
django-extensions – Custom management extensions, notably runserver_plus and shell_plus
-
django-click – Write Django management commands using the click CLI library
-
django-dbbackup – Management commands to help backup and restore your project database and media files
Content Management Systems
-
wagtail – Popular Django content management system (CMS)
-
mezzanine – CMS framework
-
django-cms – CMS for Django
-
puput – Blog app features with Wagtail
ECommerce
-
django-shop – Django-based shop system
-
shuup – Django E-Commerce Platform
Forms
-
django-crispy-forms – DRY Django forms
-
django-widget-tweaks – Tweak form field rendering in templates
-
django-autocomplete-light – Add autocompletion to forms
-
django-shapeshifter – A CBV to handle multiple forms in one view
-
bleach – Technically not a Django package but very useful
Models
-
django-fakery – An easy-to-use implementation of Creation Methods for Django, backed by Faker
-
django-lifecycle – Declarative model lifecycle hooks, an alternative to Signals
-
django-model-utils – Django model mixins and utilities
-
django-money – Money fields for forms/models
-
django-phonenumber-field – Model/form field for normalized phone numbers
-
django-taggit – Simple model tags
-
django-reversion – Version control for model instances
-
django-simple-history – Store model history and view/revert changes from the admin
Search
-
django-haystack – Modular search for Django
-
django-watson – Full-text search plugin
Performance
-
django-perf-rec – Keep detailed records of the performance of your Django code.
-
New Relic – Time middleware, views, and SQL queries.
-
Scout – Time middleware, template rendering, and SQL queries with automatic N+1 detection.
Static Assets
-
django-storages – A single library to support multiple custom storage backends for Django
-
django-compressor – Compress JavaScript/CSS into a single cached file
-
easy-thumbnails – Image thumbnails for Django
Task Queues
-
django-q – A multiprocessing distributed task queue
-
django-rq – Integration for Redis Queue
-
django-redis – Full featured Redis cache backend for Django
Testing
-
django-debug-toolbar – Configurable panels to debug requests/responses
-
pytest-django – Use pytest features in Django
-
django-test-plus – Useful additions to Django’s default TestCase
-
factory-boy – Test fixtures replacement
-
django-silk – Live profiling and inspection of HTTP requests and database queries
-
django-waffle – A feature flipper for Django
-
model-bakery – Object factory for Django (rename of legacy Model Mommy project)
Users
-
django-allauth – Improved user registration including social auth
-
django-organizations – Multi-user accounts for Django projects
Views
-
django-braces – Reusable, generic mixins
-
django-extra-views – Extra class-based generic views
-
django-vanilla-views – Simpler class-based views in Django
URLs
-
dj-database-url – Database URLs
-
urlman – A nicer way to do URLs for Django models
Python Packages
A short list of Python packages that work well with Django.
-
black – Uncompromising Python code formatter
-
coveragepy – Code coverage measurement
-
huey – A little task queue for Python
-
nplusone – Auto-detect n+1 queries
-
pillow – Python Imaging Library
-
pytest – Testing framework
-
python-slugify – Returns unicode slugs
-
sentry-python – Error reporting SDK
-
whitenoise – Simplified static file serving for Python websites
Resources
Official Resources
-
Project Website – Official Django website
-
Documentation – Comprehensive documentation for all Django versions
-
Polls Tutorial – Build a polls tutorial while learning Django internals
-
Source Code – Hosted on Github
External Resources
-
LearnDjango – Up-to-date tutorials on Django and Django REST Framework.
-
Classy Class-Based Views – Detailed descriptions of methods/properties/attributes for each generic class-based view.
-
Classy Django Forms – Detailed descriptions of methods/properties/attributes for each form class.
-
Classy Django REST Framework – Detailed descriptions with methods/attributes for DRF class-based views and serializers.
-
Django Sites – Comprehensive listing of sites built with Django.
-
Pony Checkup – Security checkups for Django sites.
-
Django Hunter – Tool to help identify incorrectly configured Django applications that are exposing sensitive information.
-
Simple is Better than Complex – Regularly updated website with many tutorials and tips on Django.
-
Full Stack Python’s Django Page – Explanation of Django philosophy and links to other resources and tutorials.
-
RealPython – Many high-quality tutorials on Django.
-
TestDriven – Multiple Django-specific tutorials on topics like Docker, payments, and more.
Community
-
Django Forum – Discourse Board
-
Community Page – Featuring feeds of Community Blog Posts, Jobs, and more.
-
Django Users Google Group – Very active discussion board for questions/answers.
-
Developers Google Group – For contributions to Django itself only.
-
Twitter – For official announcements on updates, security fixes, etc.
-
IRC Channel – Chat with other Django users at irc://irc.freenode.net/django
Conferences
Tutorials
-
Django Girls Tutorial – Use function-based views to build a blog app.
-
Mozilla Tutorial – Create a lending library app.
-
A Complete Beginner’s Guide to Django – In-depth and excellent walkthrough of a new Django app
-
Build a HackerNews clone – Very well-done tutorial for Django 2.0.
Books
Django 3.0
Django 2.2
Django 2.1
Django 2.0
Django 1.11
Videos
Hosting
PaaS (Platforms-as-a-Service)
IaaS (Infrastructure-as-a-Service)
Projects
Boilerplate
-
cookiecutter-django – A full-bodied starter project, highly customizable.
-
djangox – A simpler approach with complete user authentication flow, Pipenv, and more.
-
DRFx – A DRF starter with user auth, Pipenv, and other goodies.
-
django-project-template – A deliberately basic project that has multiple staging environments and Heroku deployment config.
-
docker-django – A quick starter guide for Django and Docker together.
-
ponee – A lightweight Django template ready for Heroku.
-
wemake-django-template – Bleeding edge Django template focused on code quality and security.
-
django2-project-template – A quick starter template with PostgreSQL.
-
django-webpack-starter – Django Webpack starter template for using Webpack 4.
Open Source
-
pythonic-news – Hacker News clone
-
Zulip – Open-source team chat
-
django-oscar – E-commerce for Django
-
saleor – E-commerce storefront
-
Django-CRM – Open Source Python CRM based on Django
-
django-job-portal – Job portal application using Django
Django REST Framework
The most popular way to build web APIs with Django.
DRF Resources
DRF Tutorials
Resources: