Skip to content
A basic search application for Django.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


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 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.

You can’t perform that action at this time.