# Awesome Django

> A curated list of awesome things related to Django. Maintained by Will Vincent and Jeff Triplett.

Please consider supporting Django by making a donation to the Django Software Foundation, sponsoring via GitHub Sponsors, or buying official merchandise.

## Contents

- Third-Party Packages
  - Admin
  - Admin Themes
  - APIs
  - Async
  - Caching
  - Commands
  - Configuration
  - Content Management Systems
  - Database Connectors
  - ECommerce
  - Editors
  - Files/Images
  - Forms
  - Full-stack frameworks
  - General
  - Internationalisation (i18n)
  - Logging
  - Monitoring
  - Mailing
  - Model Fields
  - Models
  - Performance
  - Permissions
  - Search
  - Search Engine Optimisation
  - Security
  - Static Assets
  - Task Queues
  - Templates
  - Testing
  - URLs
  - Users
  - Views
- Python Packages
- Resources
  - Official Resources
  - Educational
  - Community
  - Conferences
  - Job Boards
  - Newsletters
  - Podcasts
  - Videos
  - Books
- Hosting
  - PaaS (Platforms-as-a-Service)
  - IaaS (Infrastructure-as-a-Service)
- Projects
  - Boilerplate
  - Open Source Projects
- Django REST Framework
  - DRF Resources
  - DRF Tutorials
- Wagtail
  - Wagtail Resources

## Third-Party Packages

For a complete listing of all available packages, see Django Packages

### Admin

- django-hijack - Admins can log in and work on behalf of other users without having to know their credentials.
- django-import-export - Django application and library for importing and exporting data with admin integration.
- django-admin-inline-paginator-plus - A simple way to paginate your inline in Django admin
- django-loginas - “Log in as user” for the Django admin.
- impostor - Impostor is a Django application which allows staff members to log in as a different user by using their own username and password.
- django-impersonate - Allow superusers to “impersonate” other non-superuser accounts.
- django-admin-env-notice - Visually distinguish environments in Django Admin, for example: `development`, `staging`, `production`.
- django-related-admin - A helper library that allows you to write list_displays across foreign key relationships.
- django-admin-sortable2 - Generic drag-and-drop ordering for objects in the Django admin interface.
- django-admin-collaborator - Add real-time user presence, edit locks, and chat to Django admin with Channels and Redis.

### Admin Themes

- django-grappelli - A jazzy skin for the admin.
- django-jazzmin - Drop-in theme for django admin, that utilises AdminLTE 3 & Bootstrap 4 to make yo’ admin look jazzy.
- django-admin-interface - Customize Admin by the admin itself(color, header. title,logo) and popup windows replaced by modals.
- django-material-admin - Material design for django administration.
- django-semantic-admin - Django Semantic UI admin theme.
- django-jet-reboot - Django Jet is modern template for Django admin interface with improved functionality.
- django-baton - A cool, modern and responsive django admin application based on bootstrap 5.
- django-unfold - Modern Django admin theme for seamless interface development.
- django-daisy - A modern django dashboard fully responsive built with daisyui.
- django-admin-dracula - 🦇 Dracula themes for the Django admin.
- django-smartbase-admin - Django SmartBase Admin 🚀 performance-tuned 👥 end-user ready beautiful admin panel

### 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.
- dj-rest-auth - Authentication for Django Rest Framework.
- django-rest-knox - Authentication Module for django-rest-auth.
- djoser - REST implementation of Django auth.
- djaq - An instant remote API to Django models with a powerful query language.
- django-rest-framework-simplejwt - JSON web tokens for DRF.
- django-webpack-loader - Transparently use webpack with Django.
- drf-yasg - Automated generation of real Swagger/OpenAPI 2.0 schemas from Django REST Framework code.
- graphene-django - GraphQL for Django.
- graphene-django-filter - Advanced filters implementing and/or/not operators in GraphQL for Django.
- django-ninja - Django Ninja - Fast Django REST framework based on type annotations.
- django-tastypie - Creating delicious APIs for Django apps since 2010.
- drf-spectacular - Sane and flexible OpenAPI 3 schema generation for Django REST framework.
- django-webhook - A plug-and-play Django app for sending outgoing webhooks on model changes.

### Async

- channels - Async support for Django.
- starlette - ASGI framework.

### Caching

- django-cachalot - Caches your Django ORM queries and automatically invalidates them.
- django-cacheops - A slick ORM cache with automatic granular event-driven invalidation.

### 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.
- django-liquidb - Django application to simplify migration management and changes in states of db scheme.
- django-migration-zero - Holistic implementation of “migration zero” pattern for Django covering local changes and in-production database adjustments.
- django-typer - Write Django management commands using the Typer CLI library.

### Configuration

- confidential - Manage configs and secrets (with CLI support).
- django-environ - Environment variables.
- django-split-settings - Organize multiple settings files.
- django-constance - A Django app for storing dynamic settings in pluggable backends (Redis and Django model backend built in) with an integration with the Django admin app.
- django-configurations - eases Django project configuration by relying on the composability of Python classes and following principles of the twelve-factor app.
- dynaconf - Dynaconf loads django settings from multiple sources (multiple file formats, env vars, redis, vault, etcd), manages secrets, and allows for different merging strategies all following the twelve-factor app.
- django-extra-settings - Config and manage typed extra settings using just the django admin.
- django-removals - Detect deprecated settings variables via convenient system checks
- environs - Simplified environment variable parsing that comes with a Django helper that installs additional packages.
- django-classy-settings - Class-based settings to keep your environments in order, with easy access to typed environment variables.
- django-content-settings - Easily create and manage editable typed variables directly from the Django admin panel.

### Content Management Systems

- wagtail - Popular Django content management system (CMS). See awesome-wagtail too.
- mezzanine - CMS framework.
- django-cms - CMS for Django.
- feincms - An extensible Django-based CMS.
- puput - Blog app features with Wagtail.

### Database Connectors

- djongo - Django and MongoDB database connector.

### ECommerce

- saleor - GraphQL-based Django E-Commerce Platform.
- django-shop - Django-based shop system.
- shuup - Django E-Commerce Platform.
- django-oscar - Domain-driven e-commerce for Django.

### Editors

- django-markdownx - Comprehensive Markdown plugin built for Django.
- django-markdown-editor - Awesome Django Markdown Editor, supported for Bootstrap & Semantic-UI.
- django-business-logic - Visual DSL framework for Django.
- django-summernote - Summernote is a simple WYSIWYG editor.
- django-tinymce - TinyMCE integration for Django.
- django-prose - A lightweight editor for content creation.
- django-ace - ACE integration for Django.

### Files/Images

- django-cleanup - Zero configuration file/image removal for local and remote files.
- django-imagekit - Django app for processing images for thumbnail, black-and-white and sizes.
- django-pictures - Responsive cross-browser image library using modern codes like AVIF & WebP.
- sorl-thumbnail - Thumbnails for Django.

### Forms

- django-crispy-forms - DRY Django forms.
- django-floppyforms - Full control of form rendering.
- django-formtools - For form previous and multistep forms, previously part of Django until 1.8.
- django-widget-tweaks - Tweak form field rendering in templates.
- django-autocomplete-light - Add autocompletion to forms.
- django-shapeshifter - A class-based view to handle multiple forms in one view.

### Full-stack frameworks

- Django-Bridge - The simple way to build React frontends for Django applications.
- ReactPy - It’s React, but in Python. Insert dynamically rendered Python into Django templates using the ReactPy-Django module.
- Reactor - Phoenix LiveView, but for Django.
- Sockpuppet - Build reactive applications with the Django tooling you already know and love.
- Unicorn - A reactive component framework that progressively enhances a normal Django view, makes AJAX calls in the background, and dynamically updates the DOM.

### General

- django-data-browser - Interactive, user-friendly database explorer.
- django-filter - Powerful filters based on Django QuerySets.
- django-sql-explorer - Share data via SQL queries.
- django-tables2 - HTML tables with pagination/sorting.
- django-maintenance-mode - Shows a 503 error page when maintenance-mode is on.
- django-freeze - Convert your dynamic django site to a static one with one line of code.
- django-nh3 - Django integration with for nh3 and is an alternative for django-bleach.
- Weblate - Weblate is a copylefted libre software web-based continuous localization system, used by over 2500 libre projects and companies in more than 165 countries.
- Django-Classy-Doc - Document your own code in the style of CCBV and CDRF.
- iommi - Toolkit for development of CRUD applications without writing HTML or JavaScript.

### Internationalisation (i18n)

- django-localflavor - A collection of functionality that is useful for particular countries or cultures. Previously a part of the Django core.
- django-modeltrans - Translate Django model fields in a JSONField.
- django-modeltranslations - Translates Django models using a registration approach.
- django-rosetta - Rosetta provides a UI to read and write your project’s gettext catalogs within the Django Admin.

### Logging

- django-guid - Inject a GUID (Correlation-ID) into every log message in a Django request.
- DRF-API-Logger - An API Logger for your Django Rest Framework project.

### Monitoring

- django-prometheus - Export Django monitoring metrics to Prometheus.
- django-mixin - Monitoring mixin for Django-prometheus. A set of Grafana dashboards and Prometheus rules for Django.

### Mailing

- django-pony-express - Class-based emails including a test suite for Django.
- django-anymail - Django email backends and webhooks for Amazon SES, Brevo (Sendinblue), MailerSend, Mailgun, Mailjet, Postmark, Postal, Resend, SendGrid, SparkPost, Unisender Go and more.

### Model Fields

- django-any-urlfield - An improved URL selector to choose between internal models and external URLs.
- django-colorfield - Color field for django models with a nice color-picker widget.
- 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-streamfield - Simple StreamField for plain Django admin (based on Wagtail CMS StreamField idea).

### Models

- django-lifecycle - Declarative model lifecycle hooks, an alternative to Signals.
- django-mptt - Modified Preorder Tree Traversal; working with trees of Model instances.
- 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.
- django-polymorphic - Django-polymorphic simplifies using inherited models in Django projects.
- django-recurrence - Utility for working with recurring dates in Django.
- django-treenode - Abstract model/admin for tree-based stuff.
- django-auto-prefetch - Automatically prefetch foreign key values as needed.

### 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.
- django-query-profiler - Django query profiler to help resolve N+1 queries.
- django-silk - Live profiling and inspection of HTTP requests and database queries.
- py-spy - Sampling profiler for Python programs.
- pyinstrument - Call stack profiler for Python, Django, Flask, FastAPI.
- django-zeal - Detect N+1 queries with user-friendly error messages

### Permissions

- django-role-permissions - Django app for role-based permissions management.
- django-guardian - Per object permissions in Django.
- django-rules - A tiny but powerful app providing object-level permissions, built from the ground up for Django.

### Search

- django-haystack - Modular search for Django.
- django-watson - Full-text search plugin.
- django-admin-search - Modal filter for django admin.
- django-elasticsearch-dsl - Elasticsearch DSL integration for Django.

### Search Engine Optimisation

- django-check-seo - Check SEO of pages.

### Security

- django-csp - Adds Content-Security-Policy headers to Django.
- django-feature-policy - Set the draft security HTTP header `Feature-Policy` on a Django app.
- django-protected-media - Manages media that are considered sensitive in a protected fashion.
- DJ Checkup - Runs several checks on your deployed Django site to check for common security mistakes.

### 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.
- whitenoise - Simplified static file serving for Python websites.

### Task Queues

- beatserver - A periodic task scheduler for Django.
- django-q2 - A multiprocessing distributed task queue for Django.
- django-rq - Integration for Redis Queue.
- django-redis - Full-featured Redis cache backend for Django.
- celery - Robust and broker-agnostic task queues for bigger, performance-focused projects.
- flower - Flower is a web-based tool for monitoring and administrating Celery clusters.
- django-celery-beat - A periodic task scheduler with database configured by Django’s Admin Panel.
- celery-exporter - Prometheus & Grafana monitoring of Celery tasks.
- django-dramatiq - Task processing library with a focus on simplicity, reliability, and performance.
- django-celery-results - Celery result backend with Django.
- django-tasks - A reference implementation and backport of background workers and tasks in Django, based on DEP 14.

### Templates

- django-components - A way to create simple reusable template components in Django.
- django-template-partials - Reusable named inline partials for the Django Template Language.
- slippers - Build reusable components in Django without writing a single line of Python.
- JinjaX - Super components powers for your Jinja templates.
- django-cotton - Goodbye `{% raw %}{%{% endraw %} extends, block, include {% raw %}%}{% endraw %}`, Hello `<c-component />`. Bringing modern UI composition to Django.
- htpy - htpy is a library that makes writing HTML in plain Python fun and efficient, without a template language.

### Testing

- django-debug-toolbar - Configurable panels to debug requests/responses.
- pytest-django - Use pytest features in Django.
- django-test-migrations - Test django schema and data migrations, including migrations’ order.
- django-test-plus - Useful additions to Django’s default TestCase.
- factory-boy - Test fixtures replacement.
- django-waffle - A feature flipper for Django.
- model-bakery - Object factory for Django (rename of legacy Model Mommy project).
- django-fakery - An easy-to-use implementation of Creation Methods for Django, backed by Faker.
- drf-openapi-tester - Django test utility for validating Swagger 2.0 and OpenAPI 3.0 documentation.
- django-google-optimize - Django application designed to make running server side Google Optimize A/B tests easy.
- django-pattern-library - Pattern library generator for Django templates, to help testing of UI components.
- storybook-django - Develop Django UI components in isolation, with Storybook.

### URLs

- dj-database-url - Database URLs.
- urlman - A nicer way to do URLs for Django models.
- django-robots - This is a basic Django application to manage robots.txt files following the robots exclusion protocol, complementing the Django Sitemap contrib app.
- django-redirects - Redirects as they should be, with full control.

### Users

- django-allauth - Improved user registration including social auth.
- django-allauth-ui - Better-looking templates for django-allauth.
- django-improved-user - A custom Django user that authenticates via email. Follows identity and authentication best practices.
- django-organizations - Multi-user accounts for Django projects.
- django-cas-ng - Django-cas-ng is Django CAS (Central Authentication Service) 1.0/2.0/3.0 client library to support SSO (Single Sign On) and Single Logout (SLO).
- django-guest-user - Allow visitors to use your site like a regular user and register later.

### Views

- django-braces - Reusable, generic mixins.
- django-easy-audit - Keep track of user actions.
- django-extra-views - Extra class-based generic views.
- django-vanilla-views - Simpler class-based views in Django.
- django-stronghold - Makes all your Django views default login_required.
- neapolitan - Quick CRUD views for Django.

## Developer Tools

Standalone tools that help in developing Django projects.

### Templates

- curlylint - Experimental HTML templates linting for Jinja, Nunjucks, Django templates, Twig, Liquid.
- djhtml - Django/Jinja template indenter.
- djlint - Lint & Format HTML Templates.

## Python Packages

A short list of Python packages that work well with Django.

- bleach - Sanitize your inputs/forms.
- black - Uncompromising Python code formatter.
- coveragepy - Code coverage measurement.
- faker - Faker is a Python package that generates fake data for you.
- huey - A little task queue for Python.
- nplusone - Auto-detect n+1 queries.
- pillow - Python Imaging Library.
- pytest - Testing framework.
- python-decouple - Strict separation of settings from code.
- python-slugify - Returns unicode slugs.
- sentry-python - Error reporting SDK.
- python-socketio - Python implementation of the Socket.IO_ realtime client and server. (create Socket.io Django server instance)
- Ruff - An extremely fast Python linter and code formatter, written in Rust.

## 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.

### Educational

- Django Girls Tutorial - Use function-based views to build a blog app.
- LearnDjango - Tutorials and premium courses on Django and Django REST Framework.
- Adam Johnson - Adam is on the Technical Board of Django and regularly writes tutorials.
- Photon Designer - Django tutorials - Django tutorials by Tom Dekan on how to build Django apps simply - from how to build an instant messenger with Django, add instant search, to using Google Drive as a database. Updated regularly.
- TestDriven - Multiple Django-specific tutorials on topics like Docker, payments, and more.
- 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.
- 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.
- Mozilla Tutorial - Create a lending library app.
- Matt Layman - Regular tutorials and deep-dives on Django topics.
- Django Styleguide - Styleguide for Django with best practices and examples.
- Django Template Tags and Filters - Additional docs on Django’s 57 built-in template filters and 27 template tags.
- Django for Everybody - A complete course for webdev beginners focused on Django.
- CS50W - Harvard’s University introductory course to web development, it explains Django as backend framework.

### Community

- Django Forum - Official Discourse board.
- Community Page - Featuring feeds of Community Blog Posts, Jobs, and more.
- Local Django Communities Page - Featuring local events all around the world.
- Django Users Google Group - Very active discussion board for questions/answers.
- Developers Google Group - For contributions to Django itself only.
- Mastodon - For official announcements on updates, security fixes, etc.
- X (formerly Twitter) - For official announcements on updates, security fixes, etc.
- Discord Server - Django Discord Community.
- IRC Channel - Chat with other Django users at irc://irc.freenode.net/django.
- Djangonaut Space - Free peer-mentoring program for the Django community to launch people into the universe of open source contributions.

### Conferences

- DjangoCon US (YouTube Channel)
- DjangoCon Europe (YouTube Channel)
- DjangoCon AU
- DjangoCon Africa
- Django Day Copenhagen (YouTube Channel)
- PyCon US (YouTube Channel)
- PyCon Australia (YouTube Channel)
- Euro Python (YouTube Channel)
- Django Under the Hood
- DjangoCongress JP (YouTube Channel)
- Complete listing of all PyCons globally

### Job Boards

- Django News Jobs - A Django job board that also aggregates other job boards.
- Django Gigs - This platform caters specifically to freelance and full-time Django developers.
- Django Jobs - Django jobs posting for hiring Django Python developers.
- Python.org Job Boards - While not exclusively for Django, this job board is hosted by the official Python website and features a range of Python and Django-related job opportunities.

### Newsletters

- Django News - Weekly newsletter on announcements, articles, projects, and talks.

### Podcasts

- Django Chat - A weekly podcast from William Vincent and Django Fellow Carlton Gibson with discussions of core Django concepts and regular guests.
- Django Riffs - A new podcast from Matt Layman.
- Running in Production - Focused on tech stacks with many episodes specifically on Django.
- TalkPython - The leading Python podcast with several episodes on Django.
- Podcast Init - A popular Python podcast that features Django guests on occasion.
- Django Brew - A fun, caffeine-powered podcast about the Django web framework by Adam Hill and Sangeeta Jadoonanan!

### Videos

- DjangoTV - Your source for Django conference videos and tutorials.
- PyVideo - PyVideo is an index of Python related media.

### Books

For a complete listing of in-print books, check out DjangoBook.com.

Django 5 - Django for APIs, Fifth Edition - Boost Your Django DX - Django 5 By Example - Django in Action - Django for Beginners, Fifth Edition

## Hosting

### PaaS (Platforms-as-a-Service)

- Appliku
- Dokku
- Divio
- Fly
- Google Cloud
- Heroku
- Microsoft Azure
- Piku
- Platform.sh
- PythonAnywhere
- Railway
- Render
- Vercel

### IaaS (Infrastructure-as-a-Service)

- Digital Ocean
- Linode
- Amazon Lightsail
- Hetzner

## Projects

### Boilerplate

- cookiecutter-django - A full-bodied starter project, highly customizable.
- django-base-site - A Django site with many common third-party packages pre-installed.
- djangox - Batteries included starter project for Pip, Pipenv, or Docker.
- 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.
- django-docker-template - Dockerized Django with Postgres, Gunicorn, and Traefik (with auto-renew Let’s Encrypt).
- django-startproject - Django start project template with batteries.
- wemake-django-template - Bleeding-edge Django template focused on code quality and security.
- django-webpack-starter - Django Webpack starter template for using Webpack 4.
- sos-django-template - Django starter template with separate dev and production settings.
- django-docker-heroku-template - A template with Docker, GitHub Actions, and Heroku set up for dev/test/prod, plus various other best practices.
- cookiecutter-vue-django - Django + Vue starter project fusing Vue SFCs & Django Templates.
- launchr - Launchr is a specialized Django starter template for SaaS web apps.
- sidewinder - A Django starter kit that focuses on good defaults, developer experience, and deployment.
- Falco - Enhance your Django developer experience: CLI and Guides for the Modern Django Developer.
- Blaze.horse - A Django starter kit with reins and saddle included!

### Open Source Projects

- Blog app with users and forms
- Newspaper app with custom user model, full user auth
- pythonic-news - Hacker News clone.
- Behavior-Driven Development with Aloe
- Image Sharing Blog
- Bootcamp: An enterprise social network
- Zulip - Open-source team chat.
- Django-CRM - Open Source Python CRM based on Django.
- django-job-portal - Job portal application using Django.
- Built with Django - Curated list of awesome Django projects.
- PostHog - Open-source product analytics.
- HyperKitty - A web interface to access GNU Mailman v3 archives.
- Healthchecks - A Cron Monitoring Tool written in Python & Django.
- Flagsmith - Open-source Feature Flagging, Remote Config, and AB testing.
- OpenContracts - Enterprise-grade document analytics platform that combines automated PDF parsing, vector embeddings, and LLM integration.
- Baserow - Open source no-code database and Airtable alternative built with Django and Vue.js.
- Django CRM Admin - Open source Python CRM built entirely on Django Admin Site.
- linkding - Self-hosted bookmark manager that is designed to be minimal, fast, and easy to set up using Docker.

## Django REST Framework

The most popular way to build web APIs with Django.

### DRF Resources

- Official Documentation
- DRF Source Code
- awesome-django-rest-framework

### DRF Tutorials

- Official REST Framework - A Beginner’s Guide
- Building APIs with Django and DRF
- DRF with React
- Making React and Django play well together

## Wagtail

Wagtail, the powerful CMS for modern websites.

### Wagtail Resources

- Official website
- Developer documentation
- User documentation
- Wagtail Source Code
- awesome-wagtail
- This week in Wagtail - A (most) weekly email with updates from the Wagtail core team.
- Wagtail Space - Wagtail conferences around the world.
- Wagtail events - Online and in-person Wagtail events.

django.md Github