Stack OverflowWhat are your favorite general purpose Django apps?
[+56] [31] MiniQuark
[2009-01-10 15:54:05]
[ django web-applications ]

What are the apps that you consider part of your core toolset for Django projects (including those shipped with Django)? For example, I just discovered Migratory [1] for database migration management: I just love it, and I wish something like that would be included in Django.

I took a look at [2] and other such web sites, but it is difficult to filter out the popular and general purpose apps... so maybe here is the place!

One app per answer please, and +1 the ones you like.

This is a spectacularly useful thread. Thanks! - Brian M. Hunt
Should be Community Wiki though - Ben James
(1) @Brian: I'm glad it helps, thanks to everyone who answered! @Ben: you're right, I'm switching it to CW. Edit: how can I switch it to CW? I tried editing, but no checkbox appears. - MiniQuark
As I see, this question still get visits. But please note it's quite outdated. Many, many nice apps appeared since then. It's worth re-asking the same question today. - vincent
[+43] [2009-01-11 04:34:02] DZPM

The django-debug-toolbar [1]: a debugging toolbar for Django with various panels of information (version, time, http headers, request variables, SQL queries, cache stats, used templates)


Very nice... didn't know about that one. - MiniQuark
[+38] [2009-05-01 12:18:56] Pierre-Jean Coudert

South [1] for intelligent schema migrations.


[+28] [2009-01-11 02:13:37] Craz [ACCEPTED]

django-command-extensions [1] a collection of custom management extensions.


Hey THANKS !!! This one is fantastic. I tried graph_models on my project... it rocks! - MiniQuark
[+19] [2009-01-10 17:27:14] Tim

django-registration [1] for handling user registration


[+17] [2009-01-10 16:22:02] Jonas

django-tagging [1]. Easy to use and great quality!


Not so great quality anymore. Is django-taggit the thing now? I actually feel I've always loads of problems with these tagging apps. Never compatible with the newest django releases. - Velmont
[+17] [2009-01-13 11:20:59] andybak

sorl.thumbnail [1]: Very well thought out on-the-fly thumbnail creation.


[+14] [2009-08-16 22:59:34] vincent

We use fabric [1] to deploy our application on our servers. This tool helps you to remotely run shell scripts or copy/rsync files. You write a that contains your commands, for example in our case : tag current svn trunk and rsync it on our staging server, launch tests, restart the webserver and fastcgi daemons, ...


It's funny people upvote this answer, because in my case I stopped using it since I use git to push the production release and let a hook ( in bash ) restart apache, empty cache, etc. Sure, other operations had to be done sometimes, but not anything repetitive enough to use fabric. Plus, the fabfile was too hard to maintain. I might get back to fabric, since it's still evolving. Project must be quite mature now. - vincent
[+10] [2009-07-11 11:25:07] TomA

django-filebrowser [1] for file uploads and automatic image thumbnail creation. Integrates nicely with TinyMCE file/image selection dialogs.


[+9] [2009-01-13 11:20:16] andybak

django-reversion [1]: Full history and undo integrated nicely into the admin.


[+9] [2010-09-29 07:04:30] Pierre-Jean Coudert

Celery [1] is an asynchronous task queue/job queue based on distributed message passing. Really nice to make all your django code async (slow db call, email, external services...)


[+8] [2009-01-15 03:52:41] Cato Johnston

django-pagination [1]


[+7] [2010-03-08 17:22:23] Gregor M├╝llegger

haystack [1]. Its a ORM like abstraction layer for search backends.


[+7] [2010-03-08 21:12:11] DrDee

Django Piston [1] a mini-framework for creating APIs.


[+7] [2011-02-14 10:46:04] Denis Golomazov

django-sentry [1] is an app for logging all exceptions to database. It has a very nice interface [2] and works pretty well.


[+6] [2009-01-10 17:33:04] Soviut

I think that Satchmo [1] is going to be my new favourite as I'm slated to build an online storefront and e-commerce backend for a client.


hell yea satchmo is great. - bchhun
[+6] [2009-01-13 11:18:08] andybak

For a start look at the 3rd party apps that have been included in Pinax [1]. They have all been fairly well vetted and it's a good indication that they are well maintained and follow good practices for reusability.


[+6] [2009-07-11 11:23:44] TomA

django-simple-captcha [1] for simple yet flexible CAPTCHA verification.


[+5] [2009-07-22 14:34:58] jpartogi

GeoDjango [1] really useful for user getting information related to user location


[+4] [2011-11-07 00:10:26] Timmy O'Mahony

django-compressor [1] for compressing and minifying css and js on the fly


[+3] [2009-01-10 15:55:16] MiniQuark

Migratory [1] for database migration.


I didn't know about this. Thanks! So far I've tried South and django-evolution with no luck - jpartogi
[+3] [2009-07-22 14:30:34] jpartogi

django-messaging [1] for sending messages between users


[+2] [2009-01-10 15:59:05] MiniQuark

djangosearch [1] for searching content.


[+2] [2009-08-10 09:24:36] jpartogi

django comments [1]. I didn't know commenting system was this easy.


(1) Word of warning - if you want to customize it then there's a hidden border outside which it becomes a nightmare. - Tomasz Zielinski
I also don't like much built-in django comment system. If it would be so easy as disqus or facebook-comments - mapcuk
[+2] [2011-02-14 08:36:39] Denis Golomazov

django-profile [1] is a great app for handling user profiles. It includes:

  • registration
  • avatars (works great, even allowing picasa search for avatars)
  • locations (Google Maps)

[+2] [2011-02-14 08:47:44] Denis Golomazov

Recently I discovered django-activity-stream [1]. It is a rather generic app aimed at logging all kinds of events into a database. Each event is described as a tuple:

Actor. The object that performed the action.

Verb. The verb phrase of the action performed.

Action Object. (Optional) The object linked to the action itself.

Target. (Optional) The object that the verb is enacted on.

Logging an event is easy: just call action.send(<tuple>) and it will be stored in the database. You can do this in signal receivers or anywhere in your code.


[+2] [2011-03-05 00:04:01] Dave Gallagher

django-rules [1], which adds object-level (row-level) permissions to Django Models, rather than being limited to Auth's table-level permissions.


[+1] [2009-01-13 11:46:31] zgoda

Babeldjango [1] for internationalization and localization [2].


[+1] [2009-07-11 11:22:37] TomA

django-evolution [1] for semi-automatic schema migrations.


[+1] [2011-02-14 08:41:26] Denis Golomazov

pytils [1] is a handy app adding intelligent support for russian language (including cases, specific date formats etc.) Cases, particularly, are not supported by django built-in pluralize filter.


[0] [2010-03-17 21:13:48] Travis

Django-Photologue has solved all my image presentation, managing and resizing needs.

[0] [2011-03-15 12:19:30] Josh Smeaton

django-mptt [1] for creating, querying, and modifying tree-like data structures.