DEV Community

Cover image for The Best GitHub Repositories For Django Developers.
Mahmoud Harmouch
Mahmoud Harmouch

Posted on

The Best GitHub Repositories For Django Developers.

In this post, I have compiled a list of the most useful Django repositories on GitHub. The list is sorted by star count.

Table Of Content (TOC).

👉 Admin Panels.

xadmin ⭐ 4.7k+ 🍴 1.4k+

GitHub logo sshwsfc / xadmin

Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap.

Xadmin Build Status

Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap.

Live Demo

  • User: admin
  • Password: admin


  • Drop-in replacement of Django admin
  • Twitter Bootstrap based UI with theme support
  • Extensible with plugin support
  • Better filter, date range, number range, etc.
  • Built-in data export with xls, csv, xml and json format
  • Dashboard page with widget support
  • In-site bookmarking
  • Full CRUD methods


Export Data
Edit inline

Get Started


Xadmin is best installed via PyPI. To install the latest version, run:

pip install xadmin
Enter fullscreen mode Exit fullscreen mode

or Install from github source:

pip install git+git://
Enter fullscreen mode Exit fullscreen mode

Install from github source for Django 2.0:

pip install git+git://
Enter fullscreen mode Exit fullscreen mode

Install Requires

django-jet ⭐ 3.3k+ 🍴 700+

GitHub logo geex-arts / django-jet

Modern responsive template for the Django admin interface with improved functionality. We are proud to announce completely new Jet. Please check out Live Demo

Django JET

Modern template for Django admin interface with improved functionality

Attention! NEW JET

We are proud to announce completely new Jet. Please check out Live Demo.

Developing of new features for Django Jet will be frozen, only critical bugs will be fixed.

Live Demo

Django JET has two kinds of licenses: open-source (AGPLv3) and commercial. Please note that using AGPLv3 code in your programs make them AGPL compatible too. So if you don't want to comply with that we can provide you a commercial license (visit Home page). The commercial license is designed for using Django JET in commercial products and applications without the provisions of the AGPLv3.


Why Django JET?

  • New fresh look
  • Responsive mobile interface
  • Useful admin home page
  • Minimal template overriding
  • Easy integration
  • Themes support
  • Autocompletion
  • Handy…

django-suit ⭐ 2.2k+ 🍴 600+

GitHub logo darklow / django-suit

Modern theme for Django admin interface

Django Suit

Modern theme for Django admin interface.

Django Suit is alternative theme/skin/extension for Django administration interface.


Docs & Support


Note: Django Suit v2.0 is in active development and not yet ready for production use.

Read more here: Todo: Add issue refernce


See Contributing documentation

Build Status

Django Suit uses Travis CI to perform tests on different Django and Python versions.

Tested using Python: 2.7-3.4 and PyPy. Django: 1.9+ and Django Suit v2.0 alpha:

Build Status - v2 branch Build Status - develop branch


alt: Django Suit Preview :target:

wooey ⭐ 1.8k+ 🍴 100+

GitHub logo wooey / Wooey

A Django app that creates automatic web UIs for Python scripts.


Build Status Deploy-To-Pypi Deploy-To-Docker codecov Join the chat at

Wooey is a simple web interface to run command line Python scripts. Think of it as an easy way to get your scripts up on the web for routine data analysis, file processing, or anything else.

Wooey was envisioned as a system to allow data analysts to be able to easily:

1. Autodocument workflows for data analysis
    (simple model saving).
2. Enable fellow co-workers with no command line
    experience to utilize python scripts.
3. Enable the easy wrapping of any program in simple
   python instead of having to use language specific
   to existing tools such as Galaxy.

For installation and other instructions, check out our documentation or give Wooey a test drive at our demo-server!

django-controlcenter ⭐ 900+ 🍴 10+

GitHub logo byashimov / django-controlcenter

Set of widgets to build dashboards for Django projects

Welcome to django-controlcenter!

Get all your project models on one single page with charts and whistles.



Unfortunately, I have no time to add new features Please make PR if you need one:

  • branch from master
  • provide tests
  • add docs
  • update changelog

That's it.


Django-admin is a great tool to control your project activity: new orders, comments, replies, users, feedback -- everything is here. The only struggle is to switch between all those pages constantly just to check them out for new entries.

With django-controlcenter you can have all of your models on one single page and build beautiful charts with Chartist.js. Actually they don't even have to be a django models, get your data from wherever you want: RDBMS, NOSQL, text file or even from an external web-page, it doesn't matter.


Install django-controlcenter:

pip install -U django-controlcenter
Enter fullscreen mode Exit fullscreen mode

Create a dashboard file with unlimited number of widgets…

django-admin-tools ⭐ 700+ 🍴 100+

GitHub logo django-admin-tools / django-admin-tools

Extends the Django Admin to include a extensible dashboard and navigation menu


Travis build codecov-image Documentation Status Pypi version Python versions


django-admin-tools is a collection of extensions/tools for the default django administration interface, it includes:

  • a full featured and customizable dashboard;
  • a customizable menu bar;
  • tools to make admin theming easier.

The code is hosted on Github.

Django-admin-tools is generously documented, you can browse the documentation online a good start is to read the quickstart guide.

The project was created by David Jean Louis and was previously hosted on Bitbucket.

Please join the mailing list if you want to discuss of the future of django-admin-tools.


django-admin-tools is compatible with Django 1.11 LTS up to Django 4.0 as well Python 2.7, 3.5+.

For older python and django versions please use the 0.8.1 version of django-admin-tools which is available on Pypi.


To install django-admin-tools, run the following command inside this directory:

python install

If you have the Python easy_install utility available, you can also…

👉 Authentication.

🔝 Go To TOC

django-allauth ⭐ 7.4k+ 🍴 2.6k

GitHub logo pennersr / django-allauth

Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication.

Welcome to django-allauth!

Coverage Status

Integrated set of Django applications addressing authentication registration, account management as well as 3rd party (social) account authentication.

Home page
Source code
Mailing list
Stack Overflow


Most existing Django apps that address the problem of social authentication unfortunately focus only on one dimension - the social Most developers end up integrating another app in order to support authentication flows that are locally generated.

This approach creates a development gap between local and social authentication flows. It has remained an issue in spite of numerous common scenarios that both require. For example, an email address passed along by an OpenID provider may not be verified. Therefore, prior to hooking up an OpenID account to a local account the email address must be verified. This essentially is one of many use cases that mandate email verification to be present in both worlds.


django-oauth-toolkit ⭐ 2.6k+ 🍴 700+

GitHub logo jazzband / django-oauth-toolkit

OAuth2 goodies for the Djangonauts!

Django OAuth Toolkit


OAuth2 goodies for the Djangonauts!

GitHub Actions Coverage Supported Python versions Supported Django versions
If you are facing one or more of the following:
  • Your Django app exposes a web API you want to protect with OAuth2 authentication,
  • You need to implement an OAuth2 authorization server to provide tokens management for your infrastructure,

Django OAuth Toolkit can help you providing out of the box all the endpoints, data and logic needed to add OAuth2 capabilities to your Django projects. Django OAuth Toolkit makes extensive use of the excellent OAuthLib, so that everything is rfc-compliant.

Reporting security issues

Please report any security issues to the JazzBand security team at <>. Do not file an issue on the tracker.


  • Python 3.7+
  • Django 2.2, 3.2, 4.0 (4.0.1+ due to a regression), 4.1, or 4.2
  • oauthlib 3.1+


Install with pip:

pip install django-oauth-toolkit

Add oauth2_provider to your INSTALLED_APPS

Enter fullscreen mode Exit fullscreen mode

django-rest-auth ⭐ 2.3k+ 🍴 600+

GitHub logo Tivix / django-rest-auth

This app makes it extremely easy to build Django powered SPA's (Single Page App) or Mobile apps exposing all registration and authentication related functionality as CBV's (Class Base View) and REST (JSON)

djoser ⭐ 2.2k+ 🍴 400+

GitHub logo sunscrapers / djoser

REST implementation of Django authentication system.


Build Status Docs

REST implementation of Django authentication system. djoser library provides a set of Django Rest Framework views to handle basic actions such as registration, login, logout, password reset and account activation. It works with custom user model.

Instead of reusing Django code (e.g. PasswordResetForm), we reimplemented few things to fit better into Single Page App architecture.

Developed by SUNSCRAPERS with passion & patience.


To be able to run djoser you have to meet the following requirements:

  • Python>=3.8
  • Django>=3.0.0
  • Django REST Framework>=3.12


Simply install using pip:

$ pip install djoser
Enter fullscreen mode Exit fullscreen mode

And continue with the steps described at configuration guide.


Documentation is available to study at and in docs directory.

Contributing and development

To start developing on djoser, clone the repository:

$ git clone
Enter fullscreen mode Exit fullscreen mode

We use poetry as dependency management and packaging tool.

$ cd djoser
$ poetry install --all-extras
Enter fullscreen mode Exit fullscreen mode

This will create…

authentik ⭐ 2.2k+ 🍴 100+

GitHub logo goauthentik / authentik

The authentication glue you need.

authentik logo

Join Discord GitHub Workflow Status GitHub Workflow Status GitHub Workflow Status Code Coverage Docker pulls Latest version

What is authentik?

authentik is an open-source Identity Provider that emphasizes flexibility and versatility. It can be seamlessly integrated into existing environments to support new protocols. authentik is also a great solution for implementing sign-up, recovery, and other similar features in your application, saving you the hassle of dealing with them.


For small/test setups it is recommended to use Docker Compose; refer to the documentation.

For bigger setups, there is a Helm Chart here. This is documented here.


Light Dark


See Developer Documentation



Adoption and Contributions

Your organization uses authentik? We'd love to add your logo to the readme and our website! Email us @ or open a GitHub Issue/PR! For more information on how to contribute to authentik, please refer to our file.


This project is proudly sponsored by:

DigitalOcean provides development and testing resources for…

django-two-factor-auth ⭐ 1.3k+ 🍴 300+

GitHub logo jazzband / django-two-factor-auth

Complete Two-Factor Authentication for Django providing the easiest integration into most Django projects.

Django Two-Factor Authentication

Jazzband Build Status Test Coverage PyPI

Complete Two-Factor Authentication for Django. Built on top of the one-time password framework django-otp and Django's built-in authentication framework django.contrib.auth for providing the easiest integration into most Django projects. Inspired by the user experience of Google's Two-Step Authentication allowing users to authenticate through call, text messages (SMS), by using a token generator app like Google Authenticator or a YubiKey hardware token generator (optional).

If you run into problems, please file an issue on GitHub, or contribute to the project by forking the repository and sending some pull requests. The package is translated into English, Dutch and other languages. Please contribute your own language using Transifex.

Test drive this app through the example app. It demos most features except the Twilio integration. The example also includes django-user-sessions for providing Django sessions with a foreign key to the user. Although the package is optional, it improves account…

dj-rest-auth ⭐ 1k+ 🍴 100+

GitHub logo iMerica / dj-rest-auth

Authentication for Django Rest Framework



Drop-in API endpoints for handling authentication securely in Django Rest Framework. Works especially well with SPAs (e.g React, Vue, Angular), and Mobile applications.


  • Django 2, 3 or 4 (See Unit Test Coverage in CI)
  • Python 3

Quick Setup

Install package

pip install dj-rest-auth

Add dj_rest_auth app to INSTALLED_APPS in your django

Enter fullscreen mode Exit fullscreen mode

Add URL patterns

urlpatterns = [
    path('dj-rest-auth/', include('dj_rest_auth.urls')),
Enter fullscreen mode Exit fullscreen mode

(Optional) Use Http-Only cookies

    'USE_JWT': True,
    'JWT_AUTH_COOKIE': 'jwt-auth',
Enter fullscreen mode Exit fullscreen mode


Install required modules with pip install -r dj_rest_auth/tests/requirements.pip

To run the tests within a virtualenv, run python from the repository directory The easiest way to run test coverage is with coverage, which runs the tests against all supported Django installs. To run the test coverage within a virtualenv, run coverage run…

authomatic ⭐ 900+ 🍴 300+

GitHub logo authomatic / authomatic

Simple yet powerful authorization / authentication client library for Python web applications.


Authomatic is a framework agnostic library for Python web applications with a minimalistic but powerful interface which simplifies authentication of users by third party providers like Facebook or Twitter through standards like OAuth and OpenID.

For more info visit the project page at


Authomatic was migrated from a private project of Peter Hudec to a community-managed project Many thanks to Peter Hudec for all his hard work for creating and maintaining authomatic We are now a small team of volunteers, not paid for the work here. Any help is appreciated!


  • Loosely coupled.
  • Tiny but powerful interface.
  • The python-openid library is the only optional dependency.
  • Framework agnostic thanks to adapters Out of the box support for Django, Flask, Pyramid and Webapp2.
  • Ready to accommodate future authorization/authentication protocols.
  • Makes provider API calls a breeze.
  • Asynchronous requests.
  • JavaScript library as a bonus.
  • Out…

👉 CMS.

🔝 Go To TOC

wagtail ⭐ 12.7k+ 🍴 2.7k+

GitHub logo wagtail / wagtail

A Django content management system focused on flexibility and user experience

Wagtail Wagtail

Build Status License Version Monthly downloads follow on Twitter

Wagtail is an open source content management system built on Django, with a strong community and commercial support. It's focused on user experience, and offers precise control for designers and developers.

Wagtail screenshot

🔥 Features

  • A fast, attractive interface for authors
  • Complete control over front-end design and structure
  • Scales to millions of pages and thousands of editors
  • Fast out of the box, cache-friendly when you need it
  • Content API for 'headless' sites with decoupled front-end
  • Runs on a Raspberry Pi or a multi-datacenter cloud platform
  • StreamField encourages flexible content without compromising structure
  • Powerful, integrated search, using Elasticsearch or PostgreSQL
  • Excellent support for images and embedded content
  • Multi-site and multi-language ready
  • Embraces and extends Django

Find out more at

👉 Getting started

Wagtail works with Python 3, on any platform.

To get started with using Wagtail, run the following in a virtual environment:

Installing Wagtail

pip install wagtail
wagtail start mysite
Enter fullscreen mode Exit fullscreen mode

django-cms ⭐ 8.9k+ 🍴 2.8k+

GitHub logo django-cms / django-cms

The easy-to-use and developer-friendly enterprise CMS powered by Django

django CMS

Downloads Code Climate

Open source enterprise content management system based on the Django framework and backed by the non-profit django CMS Association (Sponsor us!).

Contribute to this project and win rewards

Because django CMS is a community-driven project, we welcome everyone to get involved in the project and receive a reward for their contribution. Become part of a fantastic community and help us make django CMS the best open source CMS in the world.


Please use the develop branch as the target for pull requests for on-going development.

Security fixes will be backported to older branches by the core team as appropriate.


  • hierarchical pages
  • extensive built-in support for multilingual websites
  • multi-site support
  • draft/publish workflows
  • version control
  • a sophisticated publishing architecture, that's also usable in your own applications
  • frontend content editing
  • a hierarchical content structure for nested plugins
  • an extensible navigation system that your own applications can hook…

django-filer ⭐ 1.6k+ 🍴 500+

GitHub logo django-cms / django-filer

File and Image Management Application for django

Django Filer

pypi python django coverage

django Filer is a file management application for django that makes handling of files and images a breeze.


This project is endorsed by the django CMS Association That means that it is officially accepted by the dCA as being in line with our roadmap vision and development/plugin policy Join us on Slack.

Contribute to this project and win rewards

Because this is a an open-source project, we welcome everyone to get involved in the project and receive a reward for their contribution. Become part of a fantastic community and help us make django CMS the best CMS in the world.

We'll be delighted to receive your feedback in the form of issues and pull requests. Before submitting your pull request, please review our contribution guidelines.

We're grateful to all contributors who have helped create and maintain this package Contributors are listed at the contributors…

cms ⭐ 400+ 🍴 10+

GitHub logo amfoss / cms

Club Management System of amFOSS, powered by CMS



Watchers Star Gazers Forks

Travis CI Version 0.5 GNU Total alerts Join the chat at Open Issues PRs Contributors

Club Management System (CMS) is django-based web-app which lays framework for the amfoss website, the amfoss webapp, and the amfoss app.

💽 Installation Instructions

The portal is primarily a django based application, and to set it up we require to have python environment with django and other project dependencies installed. Though one can work with the project without an virtual environment, it is recommended to use one so as to avoid conflicts with other projects.

  1. Make sure that you have Python 3, python-3-devel, gcc, virtualenv, and pip installed.

  2. Clone the repository

        $ git clone
        $ cd cms
  3. Create a python 3 virtualenv, and activate the environment.

        $ virtualenv -p python3 .
        $ source bin/activate
    Enter fullscreen mode Exit fullscreen mode
  4. Install the project dependencies from requirements.txt

        $ pip install -r requirements.txt

You have now successfully set up the project on your environment. If you encounter any problems during installation, you…

django-page-cms ⭐ 200+ 🍴 100+

GitHub logo batiste / django-page-cms

Official Django page CMS git repository

django-page-cms Code Climate Scrutinizer Code Quality

This Django CMS enables you to create and administrate hierarchical pages in a simple and powerful way.

For a quick demo.

$ pip3 install "django-page-cms[full]"; gerbi --create mywebsite
Enter fullscreen mode Exit fullscreen mode

Or with docker

docker compose up fast
# or if you want to build it yourself
docker compose up web
Enter fullscreen mode Exit fullscreen mode

To create a super user account

docker compose run fast python example/ createsuperuser
Enter fullscreen mode Exit fullscreen mode

To create a demo website

docker compose run fast python example/ pages_demo
Enter fullscreen mode Exit fullscreen mode

To run tests with docker

docker compose run run-test
Enter fullscreen mode Exit fullscreen mode

More informations

Django page CMS is based around a placeholders concept. Placeholder is a special template tag that you use in your page templates. Every time you add a placeholder in your template such field dynamically appears in the page admin interface.

Each page can have a different template with different placeholders.

Those placeholder can also be edited…

jbt_blog ⭐ 100+ 🍴 10+

GitHub logo leeyis / jbt_blog

一个基于Django2.0+Python3.6的博客/A simple blog based on python3.6 and Django2.0.



A simple blog based on python3.6 and Django2.0.


  • Django==2.0.3
  • django-jet==1.0.7
  • django-summernote==
  • pytz==2018.3

Front page




Backend page







  • 文章管理,包括新增、删除和编辑
  • 分类管理,包括新增、删除和编辑
  • 标签管理,包括新增、删除和编辑
  • 列表页展示概要信息、发布时间、分类、浏览次数
  • 分页展示
  • 点击"阅读全文"显示文章详细内容
  • 详情页每刷新一次浏览次数+1
  • 文章分类搜索
  • 文章标签搜索
  • 文章详细页切换上一篇和下一篇文章
  • 点击图标回到顶部
  • 文章按月归档


  • Article management, including adding, deleting and editing
  • Classified management, including adding, deleting and editing
  • Tag management, including adding, deleting and editing
  • List page shows summary information, time of release, category, number of visits
  • Pagination display
  • Click "read the full text" to display the details of the article
  • Pages plus one per view
  • Search by category
  • Search by tag
  • switch between previous and next articles
  • One-click back to the top
  • Monthly archive



  • 关键字搜索
  • 评论
  • 标签云


  • Keyword search
  • Comments
  • Tag Cloud

django-leonardo ⭐ 90+ 🍴 10+

GitHub logo django-leonardo / django-leonardo

CMS for everyone, easy to deploy and scale, robust modular system with many packages.

PypiVersion Doc badge Travis Pypi


Full featured platform for fast and easy building extensible web applications.

Don't waste your time searching stable solution for daily problems.

Deploy and Enjoy ! No skills required !

For Users

  • CMS, Page, Responsive, Layouts, Themes, Color Variations
  • Widgets, Plugins, 3rd party app integrations
  • Frontend Edit, Install/Uninstall modules in one click !
  • Store, Form Designer, Blog, News, Folio, Links, Navigations, ..
  • Media, Folders, Files, Images, Documents, Import - Export, ..
  • LIVE settings, Auto loading modules, editable templates, ..
  • Authentification, 3rd party backends, SAML standard, ..

For Developers

  • Python, Django, FeinCMS, OpenStack Horizon
  • AngularJS, React, Bootstrap, Compress, Bootswatch
  • Crispy forms, Floppy forms, Select2
  • Filer, DbTemplates, Reversion, Constance
  • Haystack, Oscar, Django Admin Bootstrap
  • and tons of other apps bundled as modules

Further reading:

👉 Debugging Tools.

🔝 Go To TOC

django-debug-toolbar ⭐ 7.2k+ 🍴 900+

GitHub logo jazzband / django-debug-toolbar

A configurable set of panels that display various debug information about the current request/response.

Django Debug Toolbar Latest version on PyPI

Jazzband Build Status Test coverage status Documentation status Supported Python versions Supported Django versions

The Django Debug Toolbar is a configurable set of panels that display various debug information about the current request/response and when clicked, display more details about the panel's content.

Here's a screenshot of the toolbar in action:

Django Debug Toolbar screenshot

In addition to the built-in panels, a number of third-party panels are contributed by the community.

The current stable version of the Debug Toolbar is 4.1.0. It works on Django ≥ 3.2.4.

Documentation, including installation and configuration instructions, is available at

The Django Debug Toolbar is released under the BSD license, like Django itself. If you like it, please consider contributing!

The Django Debug Toolbar was originally created by Rob Hudson <> in August 2008 and was further developed by many contributors.

django-devserver ⭐ 1.3k+ 🍴 100+

GitHub logo dcramer / django-devserver

A drop-in replacement for Django's runserver.


A drop in replacement for Django's built-in runserver command. Features include:

  • An extendable interface for handling things such as real-time logging.
  • Integration with the werkzeug interactive debugger.
  • Threaded (default) and multi-process development servers.
  • Ability to specify a WSGI application as your target environment.


django-devserver works on Django 1.3 and newer


To install the latest stable version:

pip install git+git://

django-devserver has some optional dependancies, which we highly recommend installing.

  • pip install sqlparse -- pretty SQL formatting
  • pip install werkzeug -- interactive debugger
  • pip install guppy -- tracks memory usage (required for MemoryUseModule)
  • pip install line_profiler -- does line-by-line profiling (required for LineProfilerModule)

You will need to include devserver in your INSTALLED_APPS:


If you're using django.contrib.staticfiles or any other apps with management command runserver, make sure to put devserver above any of them (or below for Django<1.7). Otherwise …

django-debug-panel ⭐ 300+ 🍴 10+

GitHub logo recamshak / django-debug-panel

django-debug-toolbar in WebKit DevTools. Works fine with background Ajax requests and non-HTML responses.

Django Debug Panel

Django Debug Toolbar inside WebKit DevTools. Works fine with background AJAX requests and non-HTML responses Great for single-page applications and other AJAX intensive web applications.


  1. Install and configure Django Debug Toolbar

  2. Install Django Debug Panel:

    pip install django-debug-panel
    Enter fullscreen mode Exit fullscreen mode
  3. Add debug_panel to your INSTALLED_APPS setting:

        # ...
    Enter fullscreen mode Exit fullscreen mode
  4. Replace the Django Debug Toolbar middleware with the Django Debug Panel one. Replace:

    Enter fullscreen mode Exit fullscreen mode


    Enter fullscreen mode Exit fullscreen mode
  5. (Optional) Configure your cache All the debug data of a request are stored into the cache backend debug-panel if available. Otherwise, the default backend is used, and finally if no caches are defined it will fallback to a local memory cache. You might want to configure the debug-panel cache in your settings:

    Enter fullscreen mode Exit fullscreen mode

django-debug-toolbar-template-timings ⭐ 200+ 🍴 10+

GitHub logo orf / django-debug-toolbar-template-timings

A django-debug-toolbar panel that displays template rendering times for your Django application


Template-timings is a panel for Django Debug Toolbar that gives an in-dept breakdown of the time it takes to render your Django templates (including templates included via {% extends %} and {% include %}).

Template-timings supports Django 1.11 and below, Django 2.0 and above do not work at the moment.


Install via pip (pip install django-debug-toolbar-template-timings) then add 'template_timings_panel.panels.TemplateTimings.TemplateTimings' to your DEBUG_TOOLBAR_PANELS setting, and add 'template_timings_panel' to your INSTALLED_APPS:


Enter fullscreen mode Exit fullscreen mode


Frequently asked questions

How much overhead does this add?

In my experience this panel adds about 10% overhead. The panel uses the standard SQLPanel that ships with debug-toolbar to handle the SQL timings, so if you disable that the overhead will decrease and you can still see the render times.


django-debug-toolbar-mongo ⭐ 10+ 🍴 10+

GitHub logo hmarr / django-debug-toolbar-mongo

MongoDB panel for the Django Debug Toolbar

Django Debug Toolbar MongoDB Panel

Info: An extension panel for Rob Hudson's Django Debug Toolbar that adds MongoDB debugging information
Author: Harry Marr (,


Add the following lines to your



An extra panel titled "MongoDB" should appear in your debug toolbar.

Note that this should work with any Django application that uses PyMongo.

Obtaining stack traces can slow down queries significantly. To turn them off add the following lines to your


Disclaimer: only tested in latest Chrome, may fall to pieces in other browers. If you feel like fixing it, contributions are welcome!

django-debug-toolbar-user-panel ⭐ 10+ 🍴 10+

GitHub logo playfire / django-debug-toolbar-user-panel

Panel for the Django Debug toolbar to quickly switch between users

👉 E-commerce.

🔝 Go To TOC

saleor ⭐ 16.8k+ 🍴 4.7k+

GitHub logo agiliq / merchant

A Django app to accept payments from various payment processors via Pluggable backends.



Django-Merchant is a django application that enables you to use multiple payment processors from a single API.


Following gateways are supported:

  • Paypal
  • Eway
  • Braintree Payments (Server to Server)
  • Stripe
  • Paylane
  • WePay
  • Beanstream
  • Chargebee
  • Global Iris

Off-Site Processing

  • Paypal
  • RBS WorldPay
  • Amazon FPS
  • Braintree Payments (Transparent Redirect)
  • Stripe.js
  • eWAY
  • Direct Post Method
  • Global Iris RealMPI


  • Bitcoin


Documentation is automatically built and published online at:


There is a mailing list where discussion regarding the development and usage of merchant happens:

django-oscar ⭐ 5.4k+ 🍴 2.0k+

GitHub logo django-oscar / django-oscar

Domain-driven e-commerce for Django

Domain-driven e-commerce for Django

Oscar is an e-commerce framework for Django designed for building domain-driven sites. It is structured such that any part of the core functionality can be customised to suit the needs of your project. This allows a wide range of e-commerce requirements to be handled, from large-scale B2C sites to complex B2B sites rich in domain-specific business logic.


Further reading:

Continuous integration status:

Coverage Requirements Status

PyPI status:

Docs status:

Documentation Status

Core team:

django-shop ⭐ 2.9k+ 🍴 900k+

GitHub logo awesto / django-shop

A Django based shop system


Django-SHOP aims to be a the easy, fun and fast e-commerce counterpart to django-CMS.

Build Status PyPI version Python versions Join the chat at Software license Twitter Follow

Here you can find the full documentation for django-SHOP.

Build the database model out of the product's properties – not vice versa

Most e-commerce systems are shipped with a predefined database model for products. But products can vary a lot, and it simply is impossible to create a model which fits for all of them. This is esspecially true for products with a hierarchy of variants. In many popular e-commerce platforms you either have far too many attributes per product, and/or the really required attributes are missing.

In django-SHOP implementations, the product models reflect their pysical properties making it possible to create complete and deep hierarchies of variations, but without having to fiddle with unneeded properties. It furthermore avoids the need for an Entity Attribute Value Model, which is considered a database…

shuup ⭐ 1.9k+ 🍴 900+

GitHub logo shuup / shuup

E-Commerce Platform PyPI Known Vulnerabilities


Shuup is an Open Source E-Commerce Platform based on Django and Python.


Copyright (c) 2012-2021 by Shuup Commerce Inc. <>

Shuup is International Registered Trademark & Property of Shuup Commerce Inc Business ID: BC1126729, Business Address: 1500 West Georgia Suite 1300, Vancouver, BC, V6G-2Z6, Canada.


Contributor License Agreement is required for any contribution to this project. Agreement is signed as a part of pull request process. See the CLA.rst file distributed with Shuup.


Shuup is published under Open Software License version 3.0 (OSL-3.0). See the LICENSE file distributed with Shuup.

Some external libraries and contributions bundled with Shuup may be published under other compatible licenses. For these, please refer to file in the source code tree or the licenses included within each package.


We have a Gitter chat room for Shuup. Come chat with us! Join chat

Docker quick start

Fastest way to…

eCommerce ⭐ 1.3k+ 🍴 700+

GitHub logo codingforentrepreneurs / eCommerce

We're going to take you step-by-step to build a modern, fully open-source, eCommerce web application using Python, Django, Bootstrap, Javascript, and more.


eCommerce Logo

This course will teach you step-by-step to build a eCommerce site from scratch. We'll be using open-source software to create each aspect of a fully functioning eCommerce business.

Full Course is here:

Below you'll find the related lecture code to any given section and lesson. Enjoy!


Section - Hello World

Intial Commit

Section - Products Component

1 - Your first app Module

2 - Understanding CRUD

3 - Product Model

4 - Django Admin

5 - List View

6 - Detail View

7 - ImageField & FileField

8 - Understanding Lookups

9 - Custom Model Managers

10 - Featured & Custom QuerySets

11 - SlugField & Signals

12 - Products URLs

Section: Templates

1 Base Template

2 - Include Tag

3 Pass Arguments with Include

4 - Reusable List View Snippets

5 - Reverse for URLs

6 - Navbar

7 - Template Filters

8 - ForLoop Counter…

merchant ⭐ 900+ 🍴 100k+

GitHub logo agiliq / merchant

A Django app to accept payments from various payment processors via Pluggable backends.



Django-Merchant is a django application that enables you to use multiple payment processors from a single API.


Following gateways are supported:

  • Paypal
  • Eway
  • Braintree Payments (Server to Server)
  • Stripe
  • Paylane
  • WePay
  • Beanstream
  • Chargebee
  • Global Iris

Off-Site Processing

  • Paypal
  • RBS WorldPay
  • Amazon FPS
  • Braintree Payments (Transparent Redirect)
  • Stripe.js
  • eWAY
  • Direct Post Method
  • Global Iris RealMPI


  • Bitcoin


Documentation is automatically built and published online at:


There is a mailing list where discussion regarding the development and usage of merchant happens:

django-lfs ⭐ 500+ 🍴 200+

GitHub logo diefenbach / django-lfs

An online-shop based on Django

What is it?

LFS is an online shop based on Python, Django and jQuery.


For more information please visit:


For the latest documentation please visit:

Demo shop

A demo shop can be tried here:


For development environment please visit:


0.11.0 (2017-03-09)

  • Adds Django 1.10 support
  • Excludes variants from sitemap
  • Add appending slash to all urls
  • Use F() expressions to update stock amount (#203)
  • Use F() expression to increase use_amount for vouchers (#202)
  • Removes django-pagination (use Django's default one instead)
  • remove STATIC_URL (user static_url tag instead)
  • fix saving properties and variant prices [pigletto]

0.10.2 (2015-04-25)

  • Updates lfs-paypal to 1.3
  • Fixes all tests

0.10.1 (2015-04-23)

  • Fixes
  • Fixes adding and display of reviews when L10N is turned on

0.10.0 (2015-04-22)

  • Adds Django 1.8 support
  • Moves static files to lfs.manage
  • Moves manage templates to lfs.manage


For the complete history please look into HISTORY.txt

django-ecommerce-project ⭐ 200+ 🍴 200+

GitHub logo veryacademy / django-ecommerce-project

The Django-Ecommerce is an open-source project initiative and tutorial series built with Python and the Django Framework.


Django E-commerce Tutorial Series

Learn Python and the Django Framework by building a e-commerce website
The Django E-commerce project is an open-source initiative and tutorial series. Learn from a beginner level how to build an e-commerce website

Please join our active, growing community:
Website (Coming Soon) | Twitter | YouTube

Aims of this course

The aims of this course is to:

  • learn the Django framework
  • learn how to build, test and deploy a Django application

Course Introduction

The Django E-commerce Tutorial Series is designed for students who wants to learn the Django Framework by building an e-commerce application. This course is a great way to start learning Python and the Django Framework. We start from a beginners level slowly moving into more advanced topics. I have tried to design this course to be modular so that you could also focus in on particular subjects, tutorials or aspects of Django should…

django-oscar-paypal ⭐ 100+ 🍴 200+

GitHub logo django-oscar / django-oscar-paypal

PayPal integration for django-oscar. Can be used without Oscar too.

PayPal package for django-oscar

This package provides integration between django-oscar and both PayPal REST API, PayPal Express (NVP) and PayPal Payflow Pro.

These payment options can be used individually or together. Further, the package is structured so that it can be used without Oscar if you so wish.


The package is released under the New BSD license.


Having problems or got a question?

  • Have a look at the sandbox site as this is a sample Oscar project integrated with both PayPal options. See the contributing guide within the docs for instructions on how to set up the sandbox locally.
  • Ping @django_oscar with quick queries.
  • Ask more detailed questions on the Oscar mailing list:
  • Use Github for submitting issues and pull requests.




2.0.0 (released December 20th, 2019)

  • Add support for Oscar 2.0 and Django 2.2.
  • Drop support for Oscar 1.6 and…

👉 Forms.

🔝 Go To TOC

django-crispy-forms ⭐ 4.5k+ 🍴 700+

GitHub logo django-crispy-forms / 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.


The best way to have Django DRY forms. Build programmatic reusable layouts out of components, having full control of the rendered HTML without writing HTML in templates. All this without breaking the standard way of doing things in Django, so it plays nice with any other form application.

django-crispy-forms supports Django 3.2+ with Python 3.8+.

Looking for Bootstrap 5 support? See the crispy-bootstrap5 package.

The application mainly provides:

  • A filter named |crispy that will render elegant div based forms. Think of it as the built-in methods: as_table, as_ul and as_p. You cannot tune up the output, but it is easy to start using it.
  • A tag named {% crispy %} that will render a form based on your configuration and specific layout setup. This gives you amazing power without much hassle, helping you save tons of time.

Django-crispy-forms supports several frontend frameworks, such as Twitter Bootstrap…

django-bootstrap3 ⭐ 2.3k+ 🍴 600+

GitHub logo zostera / django-bootstrap3

Bootstrap 3 integration with Django.


CI Coverage Status Latest PyPI version Any color you like

Bootstrap 3 for Django.


The goal of this project is to seamlessly blend Django and Bootstrap 3.


This package requires a combination of Python and Django that is currently supported.

See "Supported Versions" on


The full documentation is at


  1. Install using pip:

    pip install django-bootstrap3
    Enter fullscreen mode Exit fullscreen mode

    Alternatively, you can install download or clone this repo and call pip install -e ..

  2. Add to INSTALLED_APPS in your

        # ...
        # ...
    Enter fullscreen mode Exit fullscreen mode
  3. In your templates, load the bootstrap3 library and use the bootstrap_* tags:

Example template

{% load bootstrap3 %}
{# Display a form #}

<form action="/url/to/submit/" method="post" class="form">
    {% csrf_token %}
    {% bootstrap_form form %}
    {% buttons %}
        <button type="submit" class="btn btn-primary">Submit</button>
    {% endbuttons %}

django-smart-selects ⭐ 1k+ 🍴 300+

GitHub logo jazzband / django-smart-selects

chained and grouped selects for django forms

Django Smart Selects

Jazzband Build Status Coverage Status PyPI

This package allows you to quickly filter or group "chained" models by adding a custom foreign key or many to many field to your models. This will use an AJAX query to load only the applicable chained objects.

Works with Django version 2.2 to 4.0.

Warning: The AJAX endpoint enforces no permissions by default. This means that any model with a chained field will be world readable. If you would like more control over this permission, the django-autocomplete-light package is a great, high-quality package that enables the same functionality with permission checks.


For more information on installation and configuration see the documentation at:

Reporting issues / sending PRs

You can try the test_app example using:

python migrate
python loaddata test_app/fixtures/*
python runserver
Enter fullscreen mode Exit fullscreen mode

Then login with admin/admin at


  • Add permission checks to enable users to restrict who can…

django-bootstrap4 ⭐ 900+ 🍴 200+

GitHub logo zostera / django-bootstrap4

Bootstrap 4 integration with Django.

django-bootstrap 4

CI Coverage Status Latest PyPI version Any color you like

Bootstrap 4 integration for Django.


The goal of this project is to seamlessly blend Django and Bootstrap 4.


This package requires a combination of Python and Django that is currently supported.

See "Supported Versions" on


The full documentation is at


  1. Install using pip:
pip install django-bootstrap4
Enter fullscreen mode Exit fullscreen mode

Alternatively, you can install download or clone this repo and call pip install -e ..

  1. Add to INSTALLED_APPS in your
  # ...
  # ...
Enter fullscreen mode Exit fullscreen mode
  1. In your templates, load the bootstrap4 library and use the bootstrap_* tags. See example below.

Example template

{% load bootstrap4 %}
{# Display a form #}

<form action="/url/to/submit/" method="post" class="form">
    {% csrf_token %}
    {% bootstrap_form form %}
    {% buttons %}
        <button type="submit"
Enter fullscreen mode Exit fullscreen mode

django-bootstrap-modal-forms ⭐ 300+ 🍴 100+

GitHub logo trco / django-bootstrap-modal-forms

A Django plugin for creating AJAX driven forms in Bootstrap modal.

Django Bootstrap Modal Forms

A Django plugin for creating AJAX driven forms in Bootstrap modal.

Live Demo


General information

Opening an issue

When reporting an issue for django-bootstrap-modal-forms package, please prepare a publicly available repository having the issue you are reporting. The clear reproduce is the optimal way towards resolution.



django-forms-builder ⭐ 600+ 🍴 200+

GitHub logo stephenmcd / django-forms-builder

Let users build forms in Django admin


Created by Stephen McDonald

A Django reusable app providing the ability for admin users to create their own forms within the admin interface, drawing from a range of field widgets such as regular text fields, drop-down lists and file uploads. Options are also provided for controlling who gets sent email notifications when a form is submitted. All form entries are made available in the admin via filterable reporting with CSV/XLS export.

Form builder:

Data reporting:

HTML5 Features

The following HTML5 form features are supported.

  • placeholder attributes
  • required attributes
  • email fields
  • date fields
  • datetime fields
  • number fields
  • url fields


The easiest way to install django-forms-builder is directly from PyPi using pip by running the command below:

$ pip install -U django-forms-builder
Enter fullscreen mode Exit fullscreen mode

Otherwise you can download django-forms-builder and install it directly from source:

$ python install
Enter fullscreen mode Exit fullscreen mode

Once installed you can configure your project to use django-forms-builder with the following…

django-formtools ⭐ 500+ 🍴 100+

GitHub logo jazzband / django-formtools

A set of high-level abstractions for Django forms


Jazzband PyPI version Supported Python versions GitHub Actions Test Coverage

Django's "formtools" is a set of high-level abstractions for Django forms Currently for form previews and multi-step forms.

This code used to live in Django proper -- in django.contrib.formtools -- but was separated into a standalone package in Django 1.8 to keep the framework's core clean.

For a full list of available formtools, see

django-formtools can also be found on and installed from the Python Package Index:

To get more help:

Contributing to django-formtools

See CONTRIBUTING.rst for information about contributing patches to django-formtools.

Running tests is as simple as installing Tox and running it in the root Git clone directory:

$ git clone
$ cd django-formtools
$ tox
  congratulations :)

The previous…

django-remote-forms ⭐ 200+ 🍴 100+

GitHub logo WiserTogether / django-remote-forms

A platform independent django form serializer


A package that allows you to serialize django forms, including fields and widgets into Python dictionary for easy conversion into JSON and expose over API

Please go through my djangocon US 2012 talk to understand the problem sphere, motivations, challenges and implementation of Remote Forms

Sample Implementation

If you don't mind digging around a little bit to learn about different the components that might be necessary for an implementation of django-remote-forms, check out django Remote Admin django-remote-admin


Minimal Example

from django_remote_forms.forms import RemoteForm
form = LoginForm()
remote_form = RemoteForm(form)
remote_form_dict = remote_form.as_dict()
Enter fullscreen mode Exit fullscreen mode

Upon converting the dictionary into JSON, it looks like this:

    "is_bound": false
    "non_field_errors": [],
    "errors": {},
    "title": "LoginForm",
    "fields": {
        "username": {
            "title": "CharField",
            "required": true,
            "label": "Username
Enter fullscreen mode Exit fullscreen mode

django-betterforms ⭐ 100+ 🍴 10+

GitHub logo fusionbox / django-betterforms

Making forms suck less


Build Status Build Status

django-betterforms builds on the built-in django forms.


  1. Install the package:

    $ pip install django-betterforms
  2. Add betterforms to your INSTALLED_APPS.

django-bootstrap5 ⭐ 100+ 🍴 10+

GitHub logo zostera / django-bootstrap5

Bootstrap 5 for Django


CI Coverage Status Latest PyPI version Any color you like

Bootstrap 5 for Django.


The goal of this project is to seamlessly blend Django and Bootstrap 5.


Ready for production. Issues and pull requests welcome, see


This package requires a combination of Python and Django that is currently supported.

See "Supported Versions" on


The full documentation is at


  1. Install using pip:

    pip install django-bootstrap5
    Enter fullscreen mode Exit fullscreen mode
  2. Add to INSTALLED_APPS in your

        # ...
        # ...
    Enter fullscreen mode Exit fullscreen mode
  3. In your templates, load the django_bootstrap5 library and use the bootstrap_* tags. See example below.

Example template

{% load django_bootstrap5 %}

<form action="/url/to/submit/" method="post" class="form">
    {% csrf_token %}

    {% bootstrap_form form %}

    {% bootstrap_button button_type="submit" content="OK" %}
    {% bootstrap_button button_type="reset" content="Cancel" %}
Enter fullscreen mode Exit fullscreen mode

django-form-fun ⭐ 100+ 🍴 200+

django-mongodbforms ⭐ 10+ 🍴 10+

GitHub logo jschrewe / django-mongodbforms

Django forms for mongodb documents

django mongodbforms

This is an implementation of django's model forms for mongoengine documents.


Supported field types

Mongodbforms supports all the fields that have a simple representation in Django's formfields (IntField, TextField, etc). In addition it also supports ListFields and MapFields.

File fields

Mongodbforms handles file uploads just like the normal Django forms. Uploaded files are stored in GridFS using the mongoengine fields. Because GridFS has no directories and stores files in a flat space an uploaded file whose name already exists gets a unique filename with the form <filename>_<unique_number>.<extension>.

Container fields

For container fields like ListFields and MapFields a very simple widget is used. The widget renders the container content in the appropriate field plus one empty field. This is mainly done to not introduce any Javascript dependencies, the backend code will happily handle any kind of dynamic form, as long…

👉 Geolocation.

🔝 Go To TOC

django-countries ⭐ 1.2k+ 🍴 200+

GitHub logo SmileyChris / django-countries

A Django application that provides country choices for use with forms, flag icons static files, and a country field for models.

Django Countries

PyPI version Build status

A Django application that provides country choices for use with forms, flag icons static files, and a country field for models.

Country names are translated using Django's standard gettext. If you would like to help by adding a translation, please visit


  1. pip install django-countries

    For more accurate sorting of translated country names, install it with the optional pyuca package:

    pip install django-countries[pyuca]

  2. Add django_countries to INSTALLED_APPS


A country field for Django models that provides all ISO 3166-1 countries as choices.

CountryField is based on Django's CharField, providing choices corresponding to the…

django-places ⭐ 10+ 🍴 10+

GitHub logo oscarmcm / django-places

A django app for store places with autocomplete



A Django app for store places with autocomplete function and a related map to the selected place.


Install dj-places and add it to your installed apps:

$ pip install dj-places

Add the following settings and maps api key (read more here):

PLACES_MAP_OPTIONS='{"center": { "lat": 38.971584, "lng": -95.235072 }, "zoom": 10}'
PLACES_MARKER_OPTIONS='{"draggable": true}'
Enter fullscreen mode Exit fullscreen mode


Then use it in a project:

from django.db import models
from places.fields import PlacesField

class MyLocationModel(models.Model):
    location = PlacesField()
Enter fullscreen mode Exit fullscreen mode

This enables the following API:

    >>> from myapp.models import ModelName
    >>> poi = ModelName.objects.get(id=1)
    >>> poi.position
    Place('Metrocentro, Managua, Nicaragua', 52.522906, 13.41156)
    >>> poi.position
Enter fullscreen mode Exit fullscreen mode

geodjango ⭐ 10+ 🍴 1+

GitHub logo paulsmith / geodjango

GeoDjango provides geospatial extensions to the Django web dev framework

Django is a high-level Python Web framework that encourages rapid development
and clean, pragmatic design
All documentation is in the "docs" directory and online at  If you're just getting started
here's how we recommend you read the docs
    * First, read docs/install.txt for instructions on installing Django.

    * Next, work through the tutorials in order (docs/tutorial01.txt,
      docs/tutorial02.txt, etc.).

    * If you want to set up an actual deployment server, read docs/modpython.txt
      for instructions on running Django under mod_python.

    * The rest of the documentation is of the reference-manual variety.
      Read it -- and the FAQ -- as you run into problems.

Docs are updated rigorously. If you find any problems in the docs, or think they
should be clarified in any way, please take 30 seconds to fill out a ticket

To get more help:

    * Join the #django channel on Lots of helpful people

ipapi-python ⭐ 10+ 🍴 10+

GitHub logo ipapi-co / ipapi-python

Python bindings for (IP Address Location) - Use with python / django / flask for IP address location lookup

ipapi Python Library ~ by Kloudend, Inc.

IP Address Location | IP Lookup | IP Geolocation API

The ipapi Python library provides convenient access to the IP address location service from applications written in the Python language. It makes it easy to harness the potential of the IP geolocation API.

Details on free IP lookup and ipapi pricing plans


See the ipapi API docs


pip install --upgrade ipapi

or Install from source with:

python install


Python 2.7+ or Python 3.4+


>>> import ipapi

>>> ipapi.location()
  "ip": "",
  "city": "Mountain View",
  "country": "US",
  "timezone": "America/Los_Angeles",
Enter fullscreen mode Exit fullscreen mode

Usage : As an IP Location library

import ipapi

ipapi.location(ip, key, output)
Enter fullscreen mode Exit fullscreen mode


Argument Description
ip IP Address (IPv4 or IPv6) that you wish to locate.

Django-with-Geolocation ⭐ 10+ 🍴 10+

GitHub logo hellopyplane / Django-with-Geolocation

GeoLocation and Folium Project with Django.

Django with GeoLocation

GeoLocation and Folium Project with Django.

Calculate and visualize the distance between the current location and the destination.

alt text

django-ip-geolocation ⭐ 10+ 🍴 1+

GitHub logo rednaks / django-ip-geolocation

IP Geolocation Hooks for django

PyPI version Downloads Build Status

Django Ip Geolocation

Django request/response hooks to geolocate visitors by their ip address.


python -m pip install django-ip-geolocation



Use decorators to decorate views:

from django_ip_geolocation.decorators import with_ip_geolocation
def api_view(request):
   location = request.geolocation
Enter fullscreen mode Exit fullscreen mode


First you need to add the middleware into your

Enter fullscreen mode Exit fullscreen mode

Then the location is available to all views in request and response:

def api_view(request):
   location = request.geolocation
def other_view(request):
  location = request.geolocation
Enter fullscreen mode Exit fullscreen mode


Geolocation data stored in the Response cookie lacks the raw_data and is base64 encoded.

User consent

Developers must implement a helper function to check if the user consented or not and configure it in the

By default if the developer didn't provide a…

👉 Job Scheduler.

🔝 Go To TOC

django-schedule ⭐ 800+ 🍴 200+

GitHub logo thauber / django-schedule

A calendaring app for Django. It is now stable, Please feel free to use it now. Active development has been taken over by bartekgorny.


A calendaring/scheduling application, featuring:

  • one-time and recurring events
  • calendar exceptions (occurrences changed or cancelled)
  • occurrences accessible through Event API and Period API
  • relations of events to generic objects
  • ready to use, nice user interface
  • view day, week, month, three months and year
  • project sample which can be launched immediately and reused in your project

See see wiki page for more.


Download the code; put in into your project’s directory or run

python install
to install system-wide

REQUIREMENTS: python-vobject (comes with most distribution as a package).






This setting determines which day of the week your calendar begins on if your locale doesn’t already set it. Default is 0, which is Sunday.


This setting controls the behavior of :func:`Views.get_next_url`. If set, all calendar modifications will redirect here (unless there is a `next` set in the…

django-crontab ⭐ 700+ 🍴 100+

GitHub logo kraiz / django-crontab

dead simple crontab powered job scheduling for django.


dead simple crontab powered job scheduling for django (1.8-2.0).


install via pip:

pip install django-crontab
Enter fullscreen mode Exit fullscreen mode

add it to installed apps in django

Enter fullscreen mode Exit fullscreen mode

now create a new method that should be executed by cron every 5 minutes, f.e. in myapp/

def my_scheduled_job():
Enter fullscreen mode Exit fullscreen mode

now add this to your

    ('*/5 * * * *', 'myapp.cron.my_scheduled_job')
Enter fullscreen mode Exit fullscreen mode

you can also define positional and keyword arguments which let you call django management commands:

    ('*/5 * * * *', 'myapp.cron.other_scheduled_job', ['arg1', 'arg2'], {'verbose': 0}),
    ('0   4 * * *', '', ['clearsessions']),
Enter fullscreen mode Exit fullscreen mode

finally, run this command to add all defined jobs from CRONJOBS to crontab (of the user which you are running this command with):

python crontab add
Enter fullscreen mode Exit fullscreen mode


django-rq-scheduler ⭐ 10+ 🍴 10+

GitHub logo islco / django-rq-scheduler

A database backed job scheduler for Django RQ and RQ Scheduler

Django RQ Scheduler

A database backed job scheduler for Django RQ.


Currently, when you pip install Django RQ Scheduler the following packages are also installed.

  • django >= 1.9
  • django-model-utils >= 2.4
  • django-rq >= 0.9.3 (Django RQ requires RQ >= 0.5.5)
  • rq-scheduler >= 0.6.0
  • pytz >= 2015.7
  • croniter >= 0.3.24

Testing also requires:

  • factory_boy >= 2.6.1
  • psycopg2 >= 2.6.1



Use pip to install:

pip install django-rq-scheduler

Update Django Settings

  1. In, add django_rq and scheduler to INSTALLED_APPS:

  2. Configure Django RQ. See


The last step is migrate the database:

./ migrate

Creating a Job

See or

An example:

def count():
    return 1 + 1

Scheduling a Job

Scheduled Job

  1. Sign into the Django Admin site, http://localhost:8000/admin/ and locate the Django RQ Scheduler section.

  2. Click on the Add link for Scheduled Job.

  3. Enter a…

django-future ⭐ 10+ 🍴 10+

GitHub logo shrubberysoft / django-future

Scheduled jobs in Django

**django-future** is a Django application for scheduling jobs on specified
**django-future** allows you to schedule invocation of callables at a given
time.  The job queue is stored in the database and can be managed through the
admin interface.  Queued jobs are run by invoking an external django management

You need to have **django-future** installed. A recent version should be
available from PyPI.

To schedule jobs from your code, use the ``schedule_job`` function::

    >>> from django_future import schedule_job
    >>> import datetime

    >>> schedule_job(datetime.datetime(2010, 10, 10),
    ...              'myproject.myapp.handlers.dosomething')

Running jobs

Scheduled jobs will not start automagically.  The job queue must regularly
be processed by invoking the Django management command
``runscheduledjobs``.  You will probably want to run this command regularly,
perhaps in a cron job, to ensure that scheduled jobs are run in a timely

When the job processor is started, it

django-rq-jobs ⭐ 10+ 🍴 10+

GitHub logo Koed00 / django-rq-jobs

Provides scheduled jobs management from the Django Admin using Django-RQ

#Django RQ Jobs

Provides scheduled jobs management from the Django Admin using Django-RQ

Admin Screenshot



  • Make sure you have Django-RQ up and running before you do anything This app is just a simple admin plugin to manage your scheduled tasks and management commands.

  • Install the package with pip install django-rq-jobs

  • Add django_rq_jobs to INSTALLED_APPS in

    # other apps
Enter fullscreen mode Exit fullscreen mode
  • Add RQ_JOBS_MODULE in A string or a tuple of strings designating all modules where you keep your jobs. Anything marked with the Django RQ's @job decorator will show up in the admin.
# A singe module:
RQ_JOBS_MODULE = 'myapp.tasks'

# or with multiple modules:
Enter fullscreen mode Exit fullscreen mode
  • Run python migrate to create the job model.

  • Open your Django admin and find the RQ Jobs scheduled job section and schedule something.

  • Schedule the heartbeat…

👉 News Feed.

🔝 Go To TOC

django-activity-stream ⭐ 2.1k+ 🍴 400+

GitHub logo justquick / django-activity-stream

Generate generic activity streams from the actions on your site. Users can follow any actors' activities for personalized streams.

Django Activity Stream

Join the chat at

What is Django Activity Stream?

Django Activity Stream is a way of creating activities generated by the actions on your site.

It is designed for generating and displaying streams of interesting actions and can handle following and unfollowing of different activity sources For example, it could be used to emulate the Github dashboard in which a user sees changes to projects they are watching and the actions of users they are following.

Action events are categorized by four main components.

  • Actor. The object that performed the activity.
  • Verb. The verb phrase that identifies the action of the activity.
  • Action Object. (Optional) The object linked to the action itself.
  • Target. (Optional) The object to which the activity was performed.

Actor, Action Object and Target are GenericForeignKeys to any arbitrary Django object and so can represent any Django model in your project An action…

stream-django ⭐ 400+ 🍴 10+

GitHub logo GetStream / stream-django

Django Client - Build Activity Feeds & Streams with

Stream Django

build PyPI version

stream-django is a Django client for Stream, it supports Django from 1.11 up to and including 4.0 using Python 2.7 and 3.4, 3.5, 3.6+.

You can sign up for a Stream account at

Note there is also a lower level Python - Stream integration library which is suitable for all Python applications.

💡 This is a library for the Feeds product. The Chat SDKs can be found here.

Build activity streams & news feeds

Examples of what you can build

You can build:

  • Activity streams such as seen on Github
  • A twitter style newsfeed
  • A feed like instagram/ pinterest
  • Facebook style newsfeeds
  • A notification system

Example apps

You can check out our example apps built using this library (you can deploy them directly to Heroku with 1 click):

Table of Contents

django-user-streams ⭐ 10+ 🍴 10+

GitHub logo dabapps / django-user-streams

DEPRECATED: Simple, fast user news feeds for Django


Simple, fast user news feeds for Django

Author: Jamie Matthews. Follow me on Twitter.



  • Django 1.3, 1.4, 1.5


An app for creating news feeds (also known as activity streams) for users notifying them of activity happening around your site. Optimised for speed pluggability and simplicity.

News feed items are stored as a string and a timestamp. You can't store any additional metadata about the stream items, such as generic foreign keys to and Actor or a Target. You just store the item content as plain text (or HTML) If you need links to other objects, just insert an <a> tag.


PLEASE NOTE: This repository is no longer actively maintained or regularly used by DabApps and therefore should be considered deprecated. Please find alternative packages for your needs or feel free to create and maintain your own fork.


You can install django-user-streams from…

Singular-New ⭐ 1+ 🍴 10+

GitHub logo ExpressHermes / Singular-News

A Django news app powered with machine learning to provide personalised feed to the users based on their interactions on the app.

Singular News


A news app powered with machine learning to provide personalized feed to the users based on their interactions on the app.



  • Python
  • Django
  • PostgreSQL

How to set up locally

  • Fork and clone repo on your machine.

    git clone
  • Create a virtual environment. Activate it. Make sure it is in the same directory as the cloned repo.

    # for linux users
    python -m venv <env-name&gt
    source venv/bin/activate
  • Install all requirements.

    pip install -r requirements.txt
  • In inside Indus, replace email settings with your email address and password to allow email verification. Remember to remove these when committing to github.

    EMAIL_HOST_USER = os.environ.get('EMAIL_HOST_USER') # relpace with your email
    EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD') # replace with email password
  • Inside the project folder, create migrations for the apps users and feeds

    python makemigrations
    python migrate
  • Run the project

    python runserver

Contribution Guidelines

  • Fork and star the repo.
  • …

Location-based-news-recommendation ⭐ 1+ 🍴 1+

GitHub logo AselSiriwardena / Location-based-news-recommendation

A news recommendation system uses RSS news feeds in major Sri Lankan news sources and suggests them to users based on user's interests and the location.


Our problem is that now a days people getting various news feeds and for them they act like garbage Because most of them are useless for users. So it is better if we can arrange news feed according to users preference and categorize them So in arranging it is better to organize based on location or user related feeds. So as a result we decide to create user friendly system without wasting their valuable time and their related areas, locations.

In this project we are trying to get users preferences about their news choices and as a result of hectic life pattern of people we are going to recommend our users what they only wish to watch. Another feature of this is that this is according to location. So technologies we are wishing to use are ML, NLP, Web Crowling etc

when publisher upload some articles into their system…

👉 ORM.

🔝 Go To TOC

django-model-utils ⭐ 2.3k+ 🍴 300+

GitHub logo jazzband / django-model-utils

Django model mixins and utilities.

django-cacheops ⭐ 1.7k+ 🍴 200+

GitHub logo Suor / django-cacheops

A slick ORM cache with automatic granular event-driven invalidation.

Cacheops Build Status

A slick app that supports automatic or manual queryset caching and automatic granular event-driven invalidation.

It uses redis as backend for ORM cache and redis or filesystem for simple time-invalidated one.

And there is more to it:

  • decorators to cache any user function or view as a queryset or by time
  • extensions for django and jinja2 templates
  • transparent transaction support
  • dog-pile prevention mechanism
  • a couple of hacks to make django faster


Python 3.7+, Django 3.2+ and Redis 4.0+.


Using pip:

$ pip install django-cacheops

# Or from github directly
$ pip install git+
Enter fullscreen mode Exit fullscreen mode


Add cacheops to your INSTALLED_APPS…

django-money ⭐ 1.3k+ 🍴 200+

GitHub logo django-money / django-money

Money fields for Django forms and models.


Build Status Coverage Status Documentation Status PyPI

A little Django app that uses py-moneyed to add support for Money fields in your models and forms.

  • Django versions supported: 2.2, 3.2, 4.0, 4.1, 4.2
  • Python versions supported: 3.7, 3.8, 3.9, 3.10, 3.11
  • PyPy versions supported: PyPy3 (for Django <= 4.0)

If you need support for older versions of Django and Python, please refer to older releases mentioned in the release notes.

Through the dependency py-moneyed, django-money gets:

  • Support for proper Money value handling (using the standard Money design pattern)
  • A currency class and definitions for all currencies in circulation
  • Formatting of most currencies with correct currency sign


Using pip:

$ pip install django-money
Enter fullscreen mode Exit fullscreen mode

This automatically installs py-moneyed v1.2 (or later).

Add djmoney to your INSTALLED_APPS. This is required so that money field are displayed correctly in the admin.

Enter fullscreen mode Exit fullscreen mode

Model usage

Use as normal model fields:

Enter fullscreen mode Exit fullscreen mode

django-modeltranslation ⭐ 1.1k+ 🍴 200+

GitHub logo deschler / django-modeltranslation

Translates Django models using a registration approach.

War in Ukraine

On February 24th, 2022, Russia invaded Ukraine. I'm sole maintainer of this project staying in safe place, but i don't know how long it would be safe.

Russian military shelling our cities, targeting civilian population.

Help Ukraine:

Talk to your politics, talk to your friends. Send heavy weapons to Ukraine. Close the sky.

Modeltranslation Latest PyPI version Supported Python versions Join the chat at

The modeltranslation application is used to translate dynamic content of existing Django models to an arbitrary number of languages without having to change the original model classes. It uses a registration approach (comparable to Django's admin app) to be able to add translations to existing or new projects and is fully integrated into the Django admin backend.

The advantage of a registration approach is the ability to add translations to models on a per-app basis. You can use the same app in different projects may they use translations or not, and you…

django-cache-machine ⭐ 800+ 🍴 100+

GitHub logo django-cache-machine / django-cache-machine

Automatic caching and invalidation for Django models through the ORM.

Cache Machine

Cache Machine provides automatic caching and invalidation for Django models through the ORM.

For full docs, see


Cache Machine currently works with:

  • Django 2.2, 3.0, 3.1, 3.2, and 4.0
  • Python 3.6, 3.7, 3.8, 3.9, and 3.10

The last version to support Python 2.7 and Django 1.11 is django-cache-machine==1.1.0.


Get it from pypi:

pip install django-cache-machine

Running Tests

Get it from github:

git clone git://
cd django-cache-machine
pip install -r dev-requirements.txt

Django-ORM ⭐ 200+ 🍴 10+

GitHub logo dancaron / Django-ORM

Django-ORM-Standalone Template - Use the power of Django's database functionality in regular python scripts.

Django ORM Standalone

This is a python project template that allows you to use the database components of Django without having to use the rest of Django (i.e. running a web server). 🎉 A typical use case for using this template would be if you are writing a python script and you would like the database functionality provided by Django, but have no need for the request/response functionalty of a client/server web application that Django also provides.

With this project template you can write regular python scripts and use Django's excellent ORM functionality with the database backend of your choice. This makes it convienient for Djangonauts to write database driven python applications with the familiar and well polished Django ORM. Enjoy.

⚙️ Requirements

  • Last tested successfully with Python 3.9.5 and Django 4.0.6
  • Create venv and pip install django to import the required modules.

📂 File Structure

├── db/

👉 Permissions.

🔝 Go To TOC

django-guardian ⭐ 3.3k+ 🍴 500+

GitHub logo django-guardian / django-guardian

Per object permissions for Django


django-guardian is an implementation of per object permissions [1] on top of Django's authorization backend


Online documentation is available at


  • Python 3.5+
  • A supported version of Django (currently 2.2+)

GitHub Actions run tests against Django versions 2.2, 3.0, 3.1, 3.2, 4.0, and main.


To install django-guardian simply run:

pip install django-guardian


We need to hook django-guardian into our project.

  1. Put guardian into your INSTALLED_APPS at settings module:
Enter fullscreen mode Exit fullscreen mode
  1. Add extra authorization backend to your
    'django.contrib.auth.backends.ModelBackend', # default
Enter fullscreen mode Exit fullscreen mode
  1. Create guardian database tables by running:

    python migrate


After installation and project hooks we can finally use object permissions with Django.

Lets start really quickly:

>>> from django.contrib.auth.models import User, Group
>>> jack = User.objects.
Enter fullscreen mode Exit fullscreen mode

django-rules ⭐ 1.5k+ 🍴 100+

GitHub logo dfunckt / django-rules

Awesome Django authorization, without the database


rules is a tiny but powerful app providing object-level permissions to Django, without requiring a database. At its core, it is a generic framework for building rule-based systems, similar to decision trees. It can also be used as a standalone library in other contexts and frameworks.


rules has got you covered. rules is:

  • Documented, tested, reliable and easy to use.
  • Versatile. Decorate callables to build complex graphs of predicates Predicates can be any type of callable -- simple functions, lambdas methods, callable class objects, partial functions, decorated functions anything really.
  • A good Django citizen. Seamless integration with Django views, templates and the Admin for testing for object-level permissions.
  • Efficient and smart. No need to mess around with a database to figure out whether John really wrote that book.
  • Simple. Dive in the code. You'll need 10 minutes to figure out…

django-role-permissions ⭐ 500+ 🍴 100+

GitHub logo vintasoftware / django-role-permissions

A django app for role based permissions.


Build Status Coverage Status Current version at PyPI Supported Python Versions

django-role-permissions is a django app for role based permissions. It's built on top of django contrib.auth user Group and Permission functionalities and it does not add any other models to your project.

django-role-permissions supports Django versions from 1.5 until the latest.

Version 2.x now supports multiple roles!


Documentation is available at:

If you are still using the 1.x version the old documentation is at:

Running tests

This packages uses tox to run tests on multiple evironments, please make sure they are passing before submitting a pull request To run tests, install tox and run it in the command line from this project's folder:

$ tox


How to Release:

Pre release:

  • Include the changes in CHANGELOG
  • Update the version in rolepermissions/
  • Update the classifiers in


Post release:


If you have…

djangorestframework-api-key ⭐ 400+ 🍴 10+

GitHub logo florimondmanca / djangorestframework-api-key

🔐 API key permissions for Django REST Framework

Django REST Framework API Key

API key permissions for the Django REST Framework.

python versions django versions drf versions


Django REST Framework API Key is a library for allowing server-side clients to safely use your API. These clients are typically third-party backends and services (i.e. machines) which do not have a user account but still need to interact with your API in a secure way.


  • ✌️ Simple to use: create, view and revoke API keys via the admin site, or use built-in helpers to create API keys programmatically.
  • 🔒 As secure as possible: API keys are treated with the same level of care as user passwords. They are hashed using the default password hasher before being stored in the database, and only visible at creation.
  • 🎨 Customizable: satisfy specific business requirements by building your own customized API key models, permission classes and admin panels.

Should I use API keys?


dry-rest-permissions ⭐ 300+ 🍴 10+

GitHub logo dbkaplan / dry-rest-permissions

Rules based permissions for the Django Rest Framework



Rules based permissions for the Django Rest Framework.

This framework is a perfect fit for apps that have many tables and relationships between them. It provides a framework that allows you to define, for each action or groups of actions, what users have permission for based on existing data in your database.

What does DRY Rest Permissions provide?

  1. A framework for defining global and object level permissions per action.
  2. Support for broadly defining permissions by grouping actions into safe and unsafe types.
  3. Support for defining only global (table level) permissions or only object (row level) permissions.
  4. Support for custom list and detail actions.
  5. A serializer field that will return permissions for an object to your client app. This is DRY and works with your existing permission definitions.
  6. A framework for limiting list requests based on permissions
  7. Support for custom list actions

Why is DRY Rest Permissions different than


django-authority ⭐ 200+ 🍴 10+

GitHub logo jazzband / django-authority

A Django app that provides generic per-object-permissions for Django's auth app and helpers to create custom permission checks.


Jazzband GitHub Actions

This is a Django app for per-object-permissions that includes a bunch of helpers to create custom permission checks.

The main website for django-authority is You can also install the in-development version of django-authority with pip install django-authority==dev or easy_install django-authority==dev.


To get the example project running do:

  • Bootstrap the environment by running in a virtualenv:

    pip install Django
    pip install -e
  • Sync the database:

    python example/ migrate
  • Run the development server and visit the admin at

    python example/ runserver

Now create a flatage and open it to see some of the templatetags in action Don't hesitate to use the admin to edit the permission objects.

Please use for issues and bug reports.


The documenation is currently in development. You can create a nice looking html version using the

python build_sphinx


0.15 (unreleased):

  • Moved CI to GitHub Actions.
  • …

👉 RESTful API.

🔝 Go To TOC

django-rest-framework ⭐ 24.1k+ 🍴 6.3k+

GitHub logo encode / django-rest-framework

Web APIs for Django. 🎸

Django REST framework

build-status-image coverage-status-image pypi-version

Awesome web-browsable Web APIs.

Full documentation for the project is available at


REST framework is a collaboratively funded project. If you use REST framework commercially we strongly encourage you to invest in its continued development by signing up for a paid plan.

The initial aim is to provide a single full-time position on REST framework Every single sign-up makes a significant impact towards making that possible.

Many thanks to all our wonderful sponsors, and in particular to our premium backers, Sentry, Stream, Spacinov, Retool,, PostHog, CryptAPI, and FEZTO.


Django REST framework is a powerful and flexible toolkit for building Web APIs.

Some reasons you might want to use REST framework:

django-tastypie ⭐ 3.8k+ 🍴 1.2k+

GitHub logo django-tastypie / django-tastypie

Creating delicious APIs for Django apps since 2010.


Docs CI Code Coverage Version Downloads

Creating delicious APIs for Django apps since 2010.

Currently in beta but being used actively in production on several sites.



  • Python 3.6+, preferably 3.8+ (Whatever is supported by your version of Django)
  • Django 4.2, 3.2 (LTS releases), or Django 4.0 / 4.1 (intermediate releases)
  • dateutil ( >= 2.1

Format Support


What's It Look Like?

A basic example looks like:

# myapp/
# ============
from tastypie.resources import ModelResource
from myapp.models import Entry
class EntryResource(ModelResource):
    class Meta:
        queryset = Entry.objects.all()

# =======
from django.urls.conf import re_path, include
from tastypie.api import Api
from myapp.api
Enter fullscreen mode Exit fullscreen mode

django-oscar-api ⭐ 300+ 🍴 100+

GitHub logo django-oscar / django-oscar-api

RESTful JSON API for django-oscar

Django Oscar API

This package provides a RESTful API for django-oscar. Coverage Documentation Status Latest PyPi release


To use the Oscar API application in an Oscar E-commerce site, follow these steps:

  1. Install the django-oscar-api package (pip install django-oscar-api).

  2. Add rest_framework and oscarapi to INSTALLED_APPS

    Enter fullscreen mode Exit fullscreen mode
  3. Add the application's urls to your urlconf

    from django.urls import include
    urlpatterns = (
        # all the things you already have
        path("api/", include("oscarapi.urls")),
    Enter fullscreen mode Exit fullscreen mode
  4. Apply migrations:

    python migrate

See the Documentation for more information and the Changelog for release notes.

channels-api ⭐ 300+ 🍴 10+

GitHub logo linuxlewis / channels-api

RESTful Websocket APIs with Django Rest Framework and Channels

Channels API

Channels API exposes a RESTful Streaming API over WebSockets using channels. It provides a ResourceBinding which is comparable to Django Rest Framework's ModelViewSet. It is based on DRF serializer classes.

It requires Python 2.7 or 3.x, Channels <=, Django <=1.11, and Django Rest Framework 3.x

You can learn more about channels-api from my talk at the SF Django Meetup or PyBay 2016

Table of Contents

How does it work?

The API builds on top of channels' WebsocketBinding class. It works by having the client send a stream and payload parameters. This allows us to route messages to different streams (or resources) for a particular action. So POST /user would have a message that looks like the following

var msg = {
  stream: "users",
  payload: {
    action: "create",
    data: {
      email: "",
Enter fullscreen mode Exit fullscreen mode

👉 Search.

🔝 Go To TOC

django-haystack ⭐ 3.3k+ 🍴 1.3k+

GitHub logo django-haystack / django-haystack

Modular search for Django


author: Daniel Lindsley
date: 2013/07/28

Haystack provides modular search for Django. It features a unified, familiar API that allows you to plug in different search backends (such as Solr, Elasticsearch, Whoosh, Xapian, etc.) without having to modify your code.

Haystack is BSD licensed, plays nicely with third-party app without needing to modify the source and supports advanced features like faceting, More Like This, highlighting, spatial search and spelling suggestions.

You can find more information at

Getting Help

There is a mailing list ( available for general discussion and an IRC channel (#haystack on


See the changelog


Haystack has a relatively easily-met set of requirements.

Additionally, each backend has its own requirements. You should refer to for more details.

djangoql ⭐ 700+ 🍴 10+

GitHub logo ivelum / djangoql

Advanced search language for Django


Advanced search language for Django, with auto-completion. Supports logical operators, parenthesis, table joins, and works with any Django model. Tested on Python 2.7, 3.5 - 3.10, Django 1.8 - 4.0. The auto-completion feature has been tested in Chrome, Firefox, Safari, IE9+.

See a video: DjangoQL demo

DjangoQL is used by:

logo1 logo2 logo3 logo4

Is your project using DjangoQL? Please submit a PR and let us know!



$ pip install djangoql
Enter fullscreen mode Exit fullscreen mode

Add 'djangoql' to INSTALLED_APPS in your

Enter fullscreen mode Exit fullscreen mode

Add it to your Django admin

Adding DjangoQLSearchMixin your model admin will replace the standard Django search functionality with DjangoQL search. Example:

from django.contrib
Enter fullscreen mode Exit fullscreen mode

django-watson ⭐ 1k+ 🍴 100+

GitHub logo etianen / django-watson

Full-text multi-table search application for Django. Easy to install and use, with good performance.


Django CI PyPI GitHub license

django-watson is a fast multi-model full-text search plugin for Django.

It is easy to install and use, and provides high quality search results.


  • Search across multiple models.
  • Order results by relevance.
  • No need to install additional third-party modules or services.
  • Fast and scaleable enough for most use cases.
  • Supports Django 2+, Python 3.6+.


Please read the Getting Started guide for more information.

Download instructions, bug reporting and links to full documentation can be found at the main project website.

You can keep up to date with the latest announcements by joining the django-watson discussion group.


Bug reports, bug fixes, and new features are always welcome. Please raise issues on the django-watson github repository, and submit pull requests for any new code.

You can run the test suite yourself from within a virtual environment with the following commands.

    pip install psycopg2 mysqlclient -e .

django-sphinx ⭐ 300+ 🍴 100+

GitHub logo dcramer / django-sphinx

A transparent layer for full-text search using Sphinx and Django

This project is no longer maintained

This is a layer that functions much like the Django ORM does except it works on top of the Sphinx ( full-text search engine.

Please Note: You will need to create your own sphinx indexes and install sphinx on your server to use this app.

There will no longer be release packages available. Please use SVN to checkout the latest trunk version, as it should always be stable and current.


To install the latest stable version:

sudo easy_install django-sphinx

To install the latest development version (updated quite often):

git clone git://
cd django-sphinx
sudo python install

Note: You will need to install the package into your Python Path or use one of the included versions. To use the included version, you must specify the following in your file:

# Sphinx 0.9.9
# Sphinx 0.9.8

django-sphinx ⭐ 200+ 🍴 100+

GitHub logo willhardy / django-seo

Provides a set of tools for managing Search Engine Optimisation (SEO) for Django sites.

Django SEO tools

This is a set of SEO tools for Django.
It allows you to associate metadata with:

* absolute paths
* model instances
* model classes
* views

Metadata can be edited in the admin in a centralised place, but also alongside any associated models.

This is however a framework, not an app. You therefore have
complete control over the data you store. 
Here is an example of a definition::

    from rollyourown import seo

    class BasicMetadata(seo.Metadata):
        title          = seo.Tag(max_length=68, head=True)
        keywords       = seo.KeywordTag()
        description    = seo.MetaTag(max_length=155)
        heading        = seo.Tag(name="h1")
        subheading     = seo.Tag(name="h2")
        extra          = seo.Raw(head=True)
        # Adding some fields for facebook (opengraph)
        og_title       = seo.MetaTag(name="og:title", populate_from="title", verbose_name="facebook title")
        og_description = seo.MetaTag(name="og:description", populate_from="description", verbose_name='facebook description')

As you can see it is very flexible, but there is much more than this simple example.

The full documentation can be read online at

django-elasticsearch ⭐ 200+ 🍴 10+

GitHub logo liberation / django-elasticsearch

Simple wrapper around elasticsearch-py to index/search a django Model.

django_elasticsearch is a wrapper around py-elasticsearch that automates the indexation and search of django models.
Note: if your elasticsearch documents/mappings are not close to django models, this package is probably not for you.


  • Install and launch elasticsearch if it's not done already.

  • Install py-elasticsearch

    pip install elasticsearch
    Enter fullscreen mode Exit fullscreen mode
  • Install django_elasticsearch

    pip install git+
    Enter fullscreen mode Exit fullscreen mode

    Note: no pypy package yet


As stated in the python elasticsearch module documentation:

There are two branches for development - master and 0.4. Master branch is used to track all the changes for Elasticsearch 1.0 and beyond whereas 0.4 tracks Elasticsearch 0.90.

Releases with major version 1 (1.X.Y) are to be used with Elasticsearch 1.* and later, 0.4 releases are meant to work with Elasticsearch 0.90.*.

django_elasticsearch has only been tested with Elasticsearch 1.3.9 and it's corresponding python interface version 1.2.0, but since the API hasn't change i'm quite positive that newer…

django-cms-search ⭐ 10+ 🍴 10+

GitHub logo beniwohli / django-cms-search

This package provides multilingual search indexes for easy Haystack integration with django CMS



This package is deprecated. Please use its successor, aldryn-search

This package provides multilingual search indexes for easy Haystack integration with django CMS.


After installing django-cms-search through your package manager of choice, add cms_search to your INSTALLED_APPS. That's it.

For setting up Haystack, please refer to their documentation.

For more docs, see the docs folder or the online documentation.


Since version 0.5, the HaystackSearchApphook is not registered automatically anymore. If you want do use the default app hook provided by django-cms-search, add this (e.g. in

from cms_search.cms_app import HaystackSearchApphook

👉 Testing.

🔝 Go To TOC

django-jenkins ⭐ 900+ 🍴 200+

GitHub logo kmmbvnr / django-jenkins

Plug and play continuous integration with django and jenkins


Plug and play continuous integration with Django and Jenkins


From PyPI:

$ pip install django-jenkins

Or by downloading the source and running:

$ python install

Latest git version:

$ pip install -e git+git://
$ pip install coverage

Installation for Python 3:

Works out of the box


Add 'django_jenkins' to your INSTALLED_APPS list Configure Jenkins to run the following command:

$ ./ jenkins --enable-coverage

This will create reports/ directory with junit xml, Coverage and Pylint reports.

For more details see the generic tutorial:



    If present, it is supposed to be a list/tuple of django apps for Jenkins to run Tests, reports, and coverage are generated only for the apps from this list.


    List of Jenkins reporters executed by ./ jenkins command.

    Default value:


    The name of the class to use for starting the test suite for jenkins command Class…

django-nose ⭐ 800+ 🍴 200+

GitHub logo jazzband / django-nose

Django test runner using nose


The PyPI package GitHub Actions Coverage Jazzband

django-nose provides all the goodness of nose in your Django tests, like:

  • Testing just your apps by default, not all the standard ones that happen to be in INSTALLED_APPS
  • Running the tests in one or more specific modules (or apps, or classes, or folders, or just running a specific test)
  • Obviating the need to import all your tests into tests/ This not only saves busy-work but also eliminates the possibility of accidentally shadowing test classes.
  • Taking advantage of all the useful nose plugins

It also provides:

  • Fixture bundling, an optional feature which speeds up your fixture-based tests by a factor of 4
  • Reuse of previously created test DBs, cutting 10 seconds off startup time
  • Hygienic TransactionTestCases, which can save you a DB flush per test
  • Support for various databases. Tested with MySQL, PostgreSQL, and SQLite Others should work as well.

django-nose requires nose 1.2.1 or later, and the…

django-test-plus ⭐ 500+ 🍴 10+

GitHub logo revsys / django-test-plus

Useful additions to Django's default TestCase


Useful additions to Django's default TestCase from REVSYS

pypi build matrix demo


Let's face it, writing tests isn't always fun. Part of the reason for that is all of the boilerplate you end up writing. django-test-plus is an attempt to cut down on some of that when writing Django tests. We guarantee it will increase the time before you get carpal tunnel by at least 3 weeks!

If you would like to get started testing your Django apps or improve how your team is testing we offer TestStart to help your team dramatically improve your productivity.


Supports: Python 3.6, 3.7, 3.8, 3.9, 3.10, and 3.11.

Supports Django Versions: 2.0, 2.1, 2.2, 3.0, 3.1, 3.2, 4.0, 4.1, and 4.2.


Full documentation is available at


$ pip install django-test-plus
Enter fullscreen mode Exit fullscreen mode


To use django-test-plus, have your tests inherit from test_plus.test.TestCase rather than the normal django.test.TestCase::

from test_plus.test import TestCase
Enter fullscreen mode Exit fullscreen mode

django-autofixture ⭐ 400+ 🍴 100+

GitHub logo gregmuellegger / django-autofixture

Can create auto-generated test data.


Build Status Package Version

This app aims to provide a simple way of loading masses of randomly generated test data into your development database. You can use a management command to load test data through command line.

It is named autofixture because it is based on django's fixtures. Without autofixture you add test data through the admin to see how the non-static pages on your site look. You export data by using dumpdata to send it to your colleagues or to preserve it before you make a reset app and so on. As your site grows in complexity the process of adding and re-adding data becomes more and more annoying.

This is where autofixtures will help!


  • We require and support Django 1.4 to 1.9


You must make the autofixture package available on your python path Either drop it into your project directory or install it from the python package index…

django-experiments ⭐ 300+ 🍴 10+

GitHub logo mixcloud / django-experiments

Django AB testing module


Django-Experiments is an AB Testing Framework for Django.

It is possible to set up an experiment through template tags only Through the Django admin you can monitor and control experiment progress.

If you don't know what AB testing is, check out wikipedia.


Django-Experiments is best installed via pip:

pip install django-experiments
Enter fullscreen mode Exit fullscreen mode

This should download django-experiments and any dependencies. If downloading from the repo pip is still the recommended way to install dependencies:

pip install -e .
Enter fullscreen mode Exit fullscreen mode


(Detailed list in

It also requires 'django.contrib.humanize' to be in INSTALLED_APPS.


The example project is a good place to get started and have a play. Results are stored in redis and displayed in the Django admin. The key components of this framework are: the experiments, alternatives and goals.


Before you can start configuring django-experiments, you must ensure you have a redis server up and…

django-test-utils ⭐ 300+ 🍴 10+

GitHub logo ericholscher / django-test-utils

Utilities for testing Django applications

Welcome to django-test-utils. The Documentation for this project is located at

The tests are run on every commit on Devmason:

The mailing list is located on google groups:

Thanks for using test utils!


🔝 Go To TOC

I hope that this list will be helpful to all those who are interested in learning more about Django and its best libraries and tools.

Top comments (8)

thumbone profile image
Bernd Wechner

While I have bookmarked this for later review it is worth noting that it looks like little more than an aggregated list of a github search result. It is full of deprecated packages and has no commentary or appraisal for most of them and the pypi page would be far more useful for the bulk of them too ... Just saying.

wiseai profile image
Mahmoud Harmouch

It is undoubtedly a good point that the list is a bit exhausting. However, there are reasons for mentioning some outdated resources. By shedding light on projects that can be worked on and updated to Django 4.0, we can support small contributors by highlighting their valuable contributions to our world. In this way, we can all work together to make things better for everyone. Moreover, for ease of navigation, notice the Go To Toc hyperlinks. Anyways, thanks for mentionning that!

srbssv profile image

Thank you! Lots of useful stuff.

wiseai profile image
Mahmoud Harmouch

My pleasure!

elmeniwy profile image
Mahmoud Nasser Abdulhamed

Wow it was really good

wiseai profile image
Mahmoud Harmouch

Thanks for the feedback. Much appreciated!

devangtomar profile image
Devang Tomar

That was a nice read! Liked, bookmarked and followed, keep the good work! 🙌

786raees profile image
Waqar Khan

thank you so much for sharing you knowledge with us