A Comprehensive List of Insanely Useful Django Apps
Feb 20 2013
Django has huge amount of wonderful and useful apps. It's definitely great when you use Django to build your kickass web applications. but you might get overwhelmed by the quantity of all the available Django apps out there. Simply head over to http://djangopackages.com and have a look. It takes time and experience to find the 'perfect' apps for your project. For those of you who want to take a shortcut, check the list here first. I attempt to list all the awesome Django apps I've used and appreciated. It also serves as a reference for myself. I am not going to write detailed description for each app, as most of the developers of those Django apps have already written detailed documentations. I might, however, leave a note or two about when you should/should not use them. I will constantly update the list to make it more comprehensive. And one last thing, the order of the list is totally random.
django-easy-map
If you want to display a Google Map for a given address and you don't want to touch JavsScript, this app is made exactly for you. All you have to do is using the template tags, and the app does the rest for you. Here is another tip for you, if you need to use the app in a country that Google's geocoder usually fail, you better expose the Address model in the Admin, so you can manually edit the coordinates (provided that you know them).
django-extra-views-ng
The app provides some features lacking from Django's default class-based generic view, like using the FormView with inline formsets.
South
South makes schema change in Django painless. In most cases, South will work nicely with your projects. I think I wouldn't be a happy Django developer without this application.
django-uuslug
Forget about the SlugField, use this app to create unique slug for your titles and it supports unicode.
django-compresso
It combines and compresses linked and inline JavaScript or CSS in Django templates. The result is faster websites.
django-grappelli
If you don't really enjoy the look of the default Django Admin, try to use grappelli. It spices up the default admin, and you can also add dashboards. Bear in mind though, it will slow down your Django Admin. If the loading speed is not your main concern, give it a try!
django-userena
It's simply the best user account management app at the moment. It also comes with a simple facebook-like messaging system, which is not documented ( I will write a how-to soon).
django-social-auth
This app can handle most of the popluar social logins for you. I really like their authentication workflow. They use a function list (operation pipeline), so you can easily modify the whole workflow. For example, if you want to use the app with django-userena, you will need to write your own functions to create userena profiles and set guardian permissions. To tap them into the social login workflow, you simply need to add those functions to the SOCIAL_AUTH_PIPELINE in the settings.py.
django-cities-light
This app provides data for countries, regions and cities without the need of a spatial database. If you need a simple database for countries and cities, you can use this.
django-celery
It provides Celery integration for Django, so, it's a must if you want to use Celery for your Django projects. Since most of the modern web applications require some sort of asynchronous task queue/job queue, Celery is pretty standard among us.
django-celery-email
If you are using Celery already, you can use this app to send emails asynchronously.
django-voice
The developer describes it as a feedback app, but it's actually a light-weight Q&A application that comes with a clean user interface. It's still under heavy development and there are no documentations. Luckily, the source code is easy to read and you can install it via pip.
Haystack
If you need a search engine for a small to medium sized website, go with Haystack + Whoosh. If you don't mind using Java applications, go with Haystack + ElasticSearch. For the rest, Haystack is not for you just yet.
HamlPy
A must if you want to use Haml in Django.
easy-thumbnails
You can use the app to control the display sizes for your images. There is a similar app called sorl-thumbnails, which is also very popular. I never tried it because I am pretty satisfied with easy-thumbnails.
django-envelope
We all know it's very simple to add a contact form to your Django sites, but it's even easier to use django-envelope. It includes an optional honeypot, and the developers wrote proper unit tests, which I didn't bother doing for the little contact box I used before switching to django-envelope.
django-inplaceedit
Let's say you made a blog engine with Django and you want to fix a typo in your post without going into admin, you can use this app to enable inplace-edit. They made a video for it, go have a look!
django-chosen
This delightful app (along with the Chosen JavaScript plugin) makes long select boxes user-friendly - it adds a search box! It provides useful form fields and widgets, so you can easily integrate Chosen into your Django forms.
Sentry & Raven
It was django-sentry when I first started to use it, a simple interface where you can view the Django errors nicely. Now, Sentry alone is the web UI and a server that receives error messages/logs (from any programming language). Raven is the Python client. It's a nice platform if you want to keep exceptions in a database or you don't like to read the error messages that sent to your email box.
django-bootstrap-toolkit
I use it whenever I work with twitter-bootstrap, and want to render the forms in bootstrap style.
There are still a lot of amazing apps out there which I didn't include in the list, mostly because I didn't have the chance to try them yet. I will keep exploring!

Comments ( 0 ) | hide comments | leave a comment