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 DjangoPlugables.com [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.
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)
[1] http://code.google.com/p/django-debug-toolbar/django-command-extensions [1] a collection of custom management extensions.
django-registration [1] for handling user registration
[1] http://www.bitbucket.org/ubernostrum/django-registration/wiki/Homesorl.thumbnail [1]: Very well thought out on-the-fly thumbnail creation.
[1] https://github.com/sorl/sorl-thumbnailWe 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 fabfile.py 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, ...
[1] http://docs.fabfile.org/0.9/django-filebrowser [1] for file uploads and automatic image thumbnail creation. Integrates nicely with TinyMCE file/image selection dialogs.
[1] http://code.google.com/p/django-filebrowser/django-reversion [1]: Full history and undo integrated nicely into the admin.
[1] http://code.google.com/p/django-reversion/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...)
[1] http://celeryproject.org/Django Piston [1] a mini-framework for creating APIs.
[1] http://bitbucket.org/jespern/django-piston/wiki/Homedjango-sentry [1] is an app for logging all exceptions to database. It has a very nice interface [2] and works pretty well.
[1] https://github.com/dcramer/django-sentryI 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.
[1] http://www.satchmoproject.com/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.
[1] http://pinaxproject.com/django-simple-captcha [1] for simple yet flexible CAPTCHA verification.
[1] http://code.google.com/p/django-simple-captcha/GeoDjango [1] really useful for user getting information related to user location
[1] http://code.djangoproject.com/wiki/GeoDjangodjango-compressor [1] for compressing and minifying css and js on the fly
[1] https://github.com/jezdez/django_compressordjango-messaging [1] for sending messages between users
[1] http://code.google.com/p/django-messaging/django comments [1]. I didn't know commenting system was this easy.
[1] http://docs.djangoproject.com/en/dev/ref/contrib/comments/django-profile [1] is a great app for handling user profiles. It includes:
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.
django-rules [1], which adds object-level (row-level) permissions to Django Models, rather than being limited to Auth's table-level permissions.
[1] https://github.com/maraujop/django-rulesBabeldjango [1] for internationalization and localization [2].
[1] http://babel.edgewall.org/django-evolution [1] for semi-automatic schema migrations.
[1] http://code.google.com/p/django-evolution/
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.
Django-Photologue has solved all my image presentation, managing and resizing needs.
django-mptt [1] for creating, querying, and modifying tree-like data structures.
[1] https://github.com/django-mptt/django-mptt