This is neither a guide nor a tutorial, but a list of django packages that are very well known and used in the community and which I have already used myself. I will update this list as I discover new packages. If you can't find a package in this list that matches your requirements, you can always head to the djangopackages website which has a list of most django packages. It's a bit like the official django packages website.
Packages I've tried and used inside my projects.
- django-crispy-forms: If you are not a frontend pro like, this package will help you render your forms nicely with a little to no efforts, and it is very customisable. It comes with support for multiple frontend framework like bootstrap for example.
- django-allauth: This package for me and many others is a must have if you need to handle users authentications and registrations in your project. This package provides basic user signup and login views and form, email verification process, account authentication with a plethora of third party like google, password reset/change and much more. You absolutely need to give it a try if you haven't yet. For a brief intro watch this.
- django-environ: This is another must have package, with this package you can easily manage your environments variables in your django projects.
- django-extensions: This package provide you with a set of useful features to speed up your development, mostly some really usefull comands like shell_plus (probably the most used and known) that opens a django shell with all your models preloaded, a command to create a postgres database in one line and much more. It also comes with some useful fields extensions like AutoSlugField and RandomCharField.
- django-debug-toolbar: you should use this in your development environment, it gives you access to a Toolbar with really useful informations like the numbers of sql queries your app made, detail about views and request performed by your apps. A really great package to help you debug your project and optimize your database queries.
- django-braces: A set of useful mixins to use with your class based views (CVB).
- django-q: This is my go-to package for handling asynchronous and scheduled tasks. Very easy to setup and configure.
- django-markdownx: A markdown plugin for django. It is the tool I'm using for this blog combined with the python-markdown package.
- sorl-thumbnail: A package to manage thumbnails in django. This package is also used in this blog.
- django-configurations: I really love this package and how it help you manage your project settings using python classes and OOP(Object Oriented Programming) in general. You should give it a try, maybe you will prefer this over the classic django settings layout.
- cookiecutter-django : This is my default way of creating my django project instead of using the django-admin command. This is not really a django package but I wanted to mention it. You can read my article on it for more informations.
- django-embed-video: A django app for easy embedding YouTube and Vimeo videos and music from SoundCloud.
- django-maintenance-mode: This help you implement a maintenance mode in your app with ease by adding a 503.html file in your templates folder.
- django-click: This package is based on the well known python package click . It help you create commands (used with manage.py) with a similar interface to the click package.
Packages I've heard good about but haven't used yet.
- wagtail: Basically it is a headless cms (Content Management system ) based on Django.
- django-extra-views: Another great CBV library that covers cases that django-braces(mentionned above) does not.
- django-vanilla-views: Another CBV library, works great in combination with django-braces.
- django-rest-auth: Authentication for django rest framework
- django-rest-swagger: An interface for interacting with the django rest api you are building.
- django-import-export: A package to import or export models objects to several formats such as csv, json, yaml, et cetera.
- django-comments-xtd: A pluggable application that adds comments to your project. But for a more generic and easy to setup comment system, read this.
- django-channels: Help you handle chatprotocol, websockets in django.
- cookiecutter-wagtail: A cookiecutter for your wagtail projects.
- sentry: An Error tracking and logging system. For more details read the section about sentry in my cookiecutter-django article.
- dj-stripe: A package to handle payment process in django with stripe payment.