02 Mar
django-reviews - A generic review application for Django projects, which allows association of a number of reviews with any Model instance and makes retrieval of reviews simple.
I dug around the django space and couldn’t find a generic review application that would allow users to add a review (including ratings) to an entity. So, I decided to write one myself. The current application is modeled similar to django comments. The screenshot above is what you can use the application for.
22 Feb
Want to incorporate Twitter like functionality in your existing Django application? Check out Trillr.

Trillr is a microblogging application like Twitter. They have recently made their code open source.
20 Feb
This snippet allows you to login with either username or email in your Django applications. All you have to do is add the middleware and combine it in the authentication backends.
04 Feb
Last month, I wrote about various options on providing search in Django based applications. Kudos to Sean at screely.com for finishing the conversion of Django Solr module to Django 1.0. This adds one more to the list, and perhaps replacing the django lucene module. You can find the code, and other related links on the project page hosted at Google Code.
Providing Search and Faceted Navigation to Django application just became a little easier with this.
16 Jan
I have seen many Django based applications that do not provide intuitive and powerful search capabilities to their users. If you pickup a product created in django and try to do a search, you will be disappointed by the fact that the search is so primitive. No spelling correction, no fuzzy searching, no complex multi-field searches as well. Oh .. and more over, don’t even think about relevance based search.
I have created some applications, but I have been mostly written one-off custom code to integrate best of the breed open source engines like Solr and Lucene into my web applications. While doing that, it got me thinking -
What are the options that a developer has, to provide search in an django based application?
- Use of “contains” using QuerySet API
- Use Django Sphinx
- Use - django-search-lucene app
The first approach is by far the most commonly used in Django applications. What it does is that it makes use of the underlying LIKE operator of the database. The problem is with this approach is that it’s too primitive. No Relevancy, No complex constraints, and won’t work for multi-word query where the two words don’t appear together.
Second option is to use django-sphinx project. Sphinx is an open source search engine, that was primarily written to integrate well with databases (SQL focused). Though, it seems to be gaining some momentum, but for a really poweful and featureful search engine, I have found Lucene much better. Also, the integration with django requires you to install and set it up as separate server, which is always more than you are looking for.
Lastly, there is an app called django-search-lucene that provides lucene and django integration using PyLucene (Python port of Lucene). The application provides easy integration with Django ORM and simple APIs to perform search. Moreover, for power users, they have exposed an api where you can fire native lucene queries. In addition to that, it also exposes some basic status reporting in the Django admin, which is helpful is monitoring the index / searches.
I am also noticing a flurry of activity in the last 48 hours on the project and am curious to know what new additions are being made.
Next time when you are creating a django based application, look at the kind of search that you are providing to your userbase and see if you can use one of the two (2,3) options above to enhance their experience. Also, do tell me what your experience was - always looking forward to hear that.
04 Nov
Anyone who has worked on a decent size product where Django is serving as the web front, understands how monotonous the update / deployment procedure gets. Especially, when you have more than a couple of servers serving your user base. And if you are one of the companies who have embraced the cloud computing platform (Amazon Web Services), then you already have an appreciation for the problem.
Fabric is one such tool that helps in solving that problem.
Fabric is a tool that, at its core, logs into a number of hosts with SSH, and executes a set of commands, and possibly uploads or downloads files.
Check out Will Larsen’s post on how you can use Fabric. He has done a great job of explaining it.