A basic search application for Django.
Latest commit 91b4fd9 Aug 2, 2012 @pigmonkey PEP8
Failed to load latest commit information.
simplesearch PEP8 Apr 5, 2012
MANIFEST.in Updating setup.py Jul 20, 2012
README.md Now available on PyPI Jul 20, 2012
setup.py PEP8 Aug 2, 2012



A reusable Django application for simple searching, based on Julien Phalip's original code.

How it Works

A string of search terms are passed to the get_query function, along with a list of the model fields to search. These terms are normalized by normalize_query, which splits the query string into individual keyword, keeping quoted words together and removing stop words. The get_query function then returns a Q object which may be used to search the given fields for the given term.


django-simplesearch is available on PyPI and can be installed with PIP.

pip install django-simplesearch

Alternatively, you may download the source and install it.

python setup.py install


Add simplesearch to your settings.INSTALLED_APPS.


django-simplesearch was created to search blog posts. To search a model Post in the fields title and body based on a search query submitted by a form to HTTP GET, you might do something like this:

if 'q' in request.GET:
    query_string = request.GET['q']
    entry_query = get_query(query_string, ['title', 'body'])
    results = Post.objects.published().filter(entry_query).distinct()

In this case, the Post objects that matched the search query is stored within results.