A curated list of awesome Django apps, projects and resources. Inspired by and based on awesome-python.
- Awesome Django
- Admin Interface
- Asset Management
- Authentication
- Authorization
- Caching
- Compatibility
- Debugging
- Fields
- File Transfers
- Forms
- Migrations
- Mobile Support
- Model Extensions
- Payment Processing
- Project Management
- RESTful API
- Search
- Security
- SEO
- Settings
- Storage
- Tagging
- Task Queue
- Testing
- Thumbnail
- Cropping Images
- Translations
- Web frontend integration
- Wiki apps
- WYSIWYG Editors
- Workflows
- Other
- Projects
- Resources
- Contributing
Packages that extend the Admin interface, adding or improving features.
- djamin - A new style for Django admin.
- django-admin-bootstrap - Responsible Skin for Django Admin
- django-admin-bootstrapped - A Django admin theme using Twitter Bootstrap.
- django-admin-tools - A collection of extensions/tools for the default django administration interface
- django-admin2 - Extendable, adaptable rewrite of django.contrib.admin
- django-grappelli - A jazzy skin for the Django Admin-Interface.
- django-fluent-dashboard - An improved django-admin-tools dashboard for Django projects
- django-hijack - Allows superusers to hijack (=login as) and work on behalf of another user.
- django-suit - Modern theme for Django admin interface.
- django-xadmin - Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap
- yawd-admin - An administration website for Django
- django-wpadmin - WordPress look and feel for Django administration panel.
Packages that help manage the static assets of a project.
- django-compressor - Compresses linked and inline javascript or CSS into a single cached file.
- django-htmlmin - HTML minifier for Python with full support for HTML 5 and Django.
- django-gears - Compiles and concatenates JavaScript and CSS assets.
- django-pipeline - Asset packaging for Django.
Packages that improve or extend the authentication methods of Django.
- django-allauth - Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication.
- django-organizations - Multi-user accounts for Django projects.
- django-otp - A pluggable framework for adding two-factor authentication to Django using one-time passwords.
- django-rest-auth - A set of REST API endpoints to handle User Registration and Authentication tasks.
- python-social-auth - Python Social Auth is an easy-to-setup social authentication/registration mechanism with support for several frameworks and auth providers.
- django-two-factor-auth - User-friendly Two-Factor authentication.
- django-userena - Accounts for Django made beautifully simple
Packages related to authorization infrastructure and permissions.
- django-oauth-toolkit - OAuth2 goodies for the Djangonauts!
- django-oauth2-provider - Provide OAuth2 access to your app
- django-guardian - Implementation of per object permissions as authorization backend.
- django-oml - Object Moderation Layer, mixin for models that allows you moderate several content types.
- django-permission An enhanced permission library which enables a logic-based permission system to handle complex permissions in Django
Packages that help with caching.
- django-ormcache - A cache manager mixin that provides some caching of objects for the ORM.
- johnny-cache - Johnny Cache is a caching framework for django applications.
- django-cacheops - A slick ORM cache with automatic granular event-driven invalidation.
- django-cache-machine - Automatic caching and invalidation for Django models through the ORM.
- django-cachalot - Caches your Django ORM queries and automatically invalidates them.
- django-memoize - An implementation of memoization technique for Django.
Packages that help to keep compatibility of reusable apps between different Django versions.
- django-compat - For- and backwards compatibility layer for Django 1.4 to 1.7.x.
- django-compat-lint - Check Django compatibility of your code.
Packages that help hunt down bugs.
- django-debug-toolbar - A configurable set of panels that display various debug information about the current request/response.
- django-devserver - A drop in replacement for Django's built-in runserver command.
- django-querycount - Middleware that Prints the number of DB queries to the runserver console.
- django-silk - Silky smooth profiling for Django
Packages that help manage email sending.
- django-celery-email - A Django email backend that uses a celery task for sending the email.
- django-drip - Django Admin based management for drip email campaigns
- django-mailgun - A Django email backend for Mailgun.
- django-post_office - A simple app to send and manage your emails in Django, supports templates and can be easily integrated with task queues.
- django-ses - A Django email backend for Amazon's Simple Email Service.
- djrill - Email backend and new message class for Mandrill transactional email service from MailChimp.
- django-templated-email - Django module to easily send templated emails using django templates, or using a transactional mail provider (mailchimp, silverpop, etc.)
- django-yubin - django-mailer2 + django-mailviews with some extras.
- django-spoolgore - A django email backed for the Spoolgore daemon.
Packages that extend the functionality of existing field type or add new field types.
- django-bitfield - A BitField extension for Django models.
- django-enumfield - Custom Django field for using enumerations of named constants.
- django-image-tools - A package to handle images in Django.
- django-imagekit - Automated image processing for Django.
- django-jsonfield - JSONField for Django models.
- django-location-field - Location field and widget integrated with google maps.
- django-picklefield - A pickled object field for Django
- django-uuidfield - A UUIDField for Django.
- django-countries - Provides country choices for forms, flag icons, and a CountryField.
Packages that help transfer files between projects and users
- django-downloadview - Serve files with Django.
- django-sendfile - This is a wrapper around web-server specific methods for sending files to web clients.
Packages that extend the functionality of forms or add new types of forms.
- django-bootstrap-form - Twitter Bootstrap for Django Form
- django-bootstrap3 - Use Bootstrap in your Django templates, the Django way.
- django-crispy-forms - The best way to have DRY Django forms. The app provides a tag and filter that lets you quickly render forms in a div format while providing an enormous amount of capability to configure and control the rendered HTML.
- django-floppyforms - django-floppyforms is an application that gives you full control of the output of forms rendering. The forms API and features are exactly the same as Django’s, the key difference is that fields and widgets are rendered in templates instead of using string interpolation, giving you full control of the output using Django templates.
Packages for developing RESTful APIs.
- django-nap - A minimalist approach to object serialization, RESTful views, and RPC views.
- django-rest-framework - A powerful and flexible toolkit that makes it easy to build Web APIs.
- django-rest-swagger - Swagger Documentation Generator for Django REST Framework
- django-tastypie - Creating delicious APIs for Django apps since 2010.
- restless - A lightweight REST miniframework for Python
Packages that help migrate the database when there are schema updates.
- South - Django application to provide schema and data migrations that supports Django up to 1.6.x. (Django 1.7 and up have an integrated migration system, based on but not compatible with South)
Packages that help you support for mobile iOS, Android and Others
-
django-push-notifications - A minimal Django app that implements Device models that can send messages through APNS and GCM.
-
django-pushy - Django app that provides push notifications functionality with celery. The main purpose of this app is to help you send push notifications to your users at scale. If you have lots of registered device keys, django-pushy will split your keys into smaller groups which run in parallel making the process of sending notifications faster.
Packages that extend the functionality of models or add new classes of models.
- django-aggregate-if - Conditional aggregates for Django queries, just like the famous SumIf and CountIf in Excel.
- django-localflavor - Country-specific Django helpers, formerly of contrib fame.
- django-model-utils - Django model mixins and utilities.
- django-mptt - Utilities for implementing a modified pre-order traversal tree in django.
- django-treebeard -Alternative tree data structures for Django (provides 3 different methods for storing hierarchical data, including MPTT )
Packages that provide payment processing provider integration.
- dj-stripe - Django + Stripe Made Easy.
- django-merchant - A Django app that provides helpers for multiple pluggable payment backends.
- django-paypal - A pluggable Django application for integrating PayPal Payments Standard or Payments Pro.
- django-pinpayments - Django library to simplify payment processing with pin.
- django-oscar-adyen - This package provides integration with the Adyen payment gateway. It is designed to work seamlessly with the e-commerce framework django-oscar but can be used without Oscar.
- django-oscar-paymentexpress - This package provides integration with the payment gateway, PaymentExpress using their PX POST API. It is designed to work seamlessly with the e-commerce framework django-oscar but can be used without it.
- django-oscar-paypal - PayPal integration for django-oscar. Can be used without Oscar too.
- django-zebra - Forms, widgets, template tags and examples that make Stripe + Django easier.
- django-timepiece - A multi-user Django application for tracking people's time on projects.
Packages that provide search capabilities to projects.
- django-haystack - Modular search for Django.
- django-watson - Fast multi-model full-text search plugin.
Packages that improve the security of a project.
- django-admin-honeypot - A fake Django admin login screen to notify admins of attempted unauthorized access.
- django-axes - is a very simple way for you to keep track of failed login attempts, both for the Django admin and for the rest of your site.
- django-debreach - BREACH mitigation for Django apps.
- django-password-session - Invalidate all active sessions after change password (not needed for Django 1.7+).
- django-secure - Helping you remember to do the stupid little things to improve your Django site's security.
- django-stronghold - Stronghold is middleware to default all your views to login required.
- django-sslify - Force SSL on your Django site.
Packages that help improve SEO ( Search Engine Optimization ) of projects.
- django-meta - a pluggable app to allow Django developers to quickly add meta tags and OpenGraph, Twitter, and Google Plus properties to their HTML responses.
- django-seo - Provides a set of tools for managing Search Engine Optimisation (SEO) for Django sites.
- django-robots - A Django app for managing robots.txt files following the robots exclusion protocol.
Packages that help manage the configurability of projects.
- django-configurations - A helper for organizing Django project settings by relying on well established programming patterns.
- 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.
- python-decouple - Strict separation of config from code.
Packages that extend the functionality of the existing storage backend or provide new storage backends.
- django-storages - django-storages is a collection of custom storage backends for Django.
- django-queued-storage - Provides a proxy for Django storage backends that allows you to upload files locally and eventually serve them remotely.
- django-taggit - Simple tagging for Django.
Packages that make working with task/background queues easier.
- django-celery - Celery Integration for Django. (no longer required for Celery 3.1 and up)
- django-rq - The easiest way to monitor and use RQ in your Django projects.
- huey - A little multi-threaded task queue for python.
Packages that help test code or generate test data.
- django-behave - TestRunner for the Behave BDD module.
- django-faker - Fake-factory to generate test data.
- django-dynamic-fixture - A complete library to create dynamic model instances for testing purposes.
- django-jenkins - Plug and play continuous integration with django and jenkins.
- django-nose - Test runner using nose.
- django-selenium - Selenium testing support.
- django-slowtests - Locate your slowest tests.
- factory_boy - A test fixtures replacement for Python
- lettuce-django-terrain - Terrain file for lettuce in django projects
- model-mommy - Smart fixtures for better tests.
- pytest-django - Test runner using py.test
- splinter - Test framework for web applications.
Packages that help generate thumbnails.
- sorl-thumbnail - Thumbnails for Django.
- django-stdimage - Thumbnails and image utils for Django.
- easy-thumbnails - Easy thumbnails for Django.
Packages that help to crop Images.
- django-image-cropping - Cropping Image for Django.
Packages help with the task of translating projects.
- django-klingon - An attempt to make django model translations suckless and with no integrations pain in your app.
- django-modeltranslation - Translate dynamic content of existing Django models to an arbitrary number of languages without having to change the original model classes.
- django-rosetta - Rosetta is a Django application that eases the translation process of your Django projects.
- django-parler - Simple Django model translations without nasty hacks
- django-hvad - Painless translations in django, using the regular ORM. Integrates easily into existing projects and apps. Easy convertible from django-multilingual-ng.
- django-angular - Let AngularJS play well with Django.
- djangular - A reusable Django app that provides better integration and tools for Angular.js.
- django-js-reverse - Javascript url handling for Django that doesn't hurt.
Packages that makes text editing awesome.
- django-ckeditor - Django admin CKEditor integration.
- django-summernote - Summernote is a simple WYSIWYG editor. django-summernote allows you to embed Summernote into Django very handy. Support admin mixins and widgets.
- django-tinymce - TinyMCE integration for Django.
- django-wysiwyg - A Django application for making Django textareas rich text editors. Certainly as a template tag and possibly as a form widget.
- django-wysiwyg-redactor - A lightweight wysiwyg editor for Django.
- django-wiki A wiki system with complex functionality for simple integration and a superb interface. Store your knowledge with style: Use django models.
- waliki An extensible wiki app for Django with a Git backend.
Packages that do process, procedure and/or business tasks management.
- django-flows - django-flows keeps state and position in complicated flows of logic, allowing optional branches and complicated paths through a series of individual user actions.
- django-fsm - Django friendly finite state machine support.
- django-states - State machine for django models.
- django-viewflow - Reusable workflow library for Django.
- django-workflows - django-workflows provides a generic workflow engine for Django.
- django-xworkflows - Library to plug xworkflows into django models.
- cookiecutter - A command-line utility that creates projects from cookiecutters (project templates).
- dj-database-url - Utilize the 12factor inspired DATABASE_URL environment variable to configure your Django application.
- django-activeurl - Easy to use active URL highlighting for django
- django-activity-stream - Generate generic activity streams from the actions on your site. Users can follow any actors' activities for personalized streams.
- django-adminactions - Collection of useful actions to use with django.contrib.admin.ModelAdmin and/or django.contrib.admin.AdminSite
- django-autoadmin - Automatic admin users for Django projects.
- django-braces - Reusable, generic mixins for Django.
- django-changuito - A cart app for your django site, an updated fork of django-cart
- django-extensions - This is a repository for collecting global custom management extensions for the Django Framework.
- django-filter - A generic system for filtering Django QuerySets based on user selections.
- django-friendship - Django app to manage following and bi-directional friendships.
- django-gravatar2 - Essential Gravatar support for Django. Features helper methods, templatetags and a full test suite!
- django-magic-embed - an easy and simple Django template tag and tool to embed video and get thumbnails from video providers.
- django-markitup - A Django reusable application for end-to-end markup handling.
- django-pagination - https://github.com/ericflo/django-pagination.
- django-quiz-app - This is a configurable quiz app for Django.
- django-recaptcha - Django reCAPTCHA form field/widget integration app.
- django-smuggler - Django Smuggler is a pluggable application for Django Web Framework that helps you to import/export fixtures via the automatically-generated administration interface.
- django-solo - Helps working with singletons - things like global settings that you want to edit from the admin site.
- django-sql-explorer - Easily share data via SQL queries, right from Django
- django-ratelimit - provides a decorator to rate-limit views. Limiting can be based on IP address or a field in the request--either a GET or POST variable.
- django-uuslug - a slugify application that guarantees Uniqueness and handles Unicode.
- django-watchman - django-watchman exposes a status endpoint for your backing services like databases, caches, etc.
- metamon - Collection of Ansible playbooks to quickly start your Django Application
- micawber - A small library for extracting rich content from urls.
Outstanding Django projects.
- django-cms - The easy-to-use and developer-friendly CMS.
- mezzanine - A content management platform built using the Django framework.
- wagtail - A new Django content management system.
- django-fiber - Django Fiber, a simple, user-friendly CMS for all your Django projects
- mayan-edms - Open source, Django based DMS (document management system) with custom metadata indexing, file serving integration, OCR capabilities, document versioning and electronic signature verification.
- Satchmo - Satchmo is an eCommerce framework created in Django which allows you to develop unique and robust online stores.
- django-oscar - Domain-driven e-commerce for Django.
- Django packages - Django Packages is a directory of reusable apps, sites, tools, and more for your Django projects.
Where to discover new Django apps and projects.
- Django by Example (1.2)
- Django by Example for Django 1.5 (1.5)
- Djen of Django
- Effective Django (1.5)
- Getting started with Django (video)
- Tango With Django (1.5)
- Test-Driven Web Development with Python (1.7)
- The Django book
- Two Scoops of Django: Best Practices for Django 1.6 - Making Python and Django as fun as ice cream.
- Django Packages - Django Packages is a directory of reusable apps, sites, tools, and more for your Django projects.
- Django Sites - Django Sites is a showcase of websites powered by Django.
- Full Stack Python's Django page - contains explanations for Django's philosophy and its components along with links to other resources and tutorials.
- Django Beer - the new meeting of the Django community of Florence.
- Django Village - the Italian Django community conference. An opportunity to meet djangonauts from all over Italy and abroad.
- Django Weekend - is a Django/Python non-profit community event, organised and run entirely by volunteers. The conference is Django-focused, but all aspects of Python fall within its remit.
- Django: Under The Hood - is an exciting new Django conference for experienced Django developers. Come and learn about the internals of Django, and help to shape its future.
- DjangoCon Europe - is the annual largest European-based Django conference that is usually held in late spring.
- DjangoCon US - is the largest North American Django conference generally held the first week in September each year.
- Must Watch Django Videos - Must-watch videos about Django (or about Python as applied to Django)
Just fork and send a pull request with your awesome Django apps, projects or resources.