Skip to content

Django application that provider the like and ilike lookups for the querysets

License

Notifications You must be signed in to change notification settings

goinnn/django-like

Repository files navigation

django-like is a Django application that adds other useful fields.

It is distributed under the terms of the GNU Lesser General Public License <http://www.gnu.org/licenses/lgpl.html>

https://travis-ci.org/goinnn/django-like.png?branch=master https://coveralls.io/repos/goinnn/django-like/badge.png?branch=master https://badge.fury.io/py/django-like.png https://pypip.in/d/django-like/badge.png
  • Django (>=1.1). It's possible that works with other versions lower 1.1
  • To use the "like/ilike lookup" with Django 1.4, 1.5 or 1.6 you need to install django_like (this app make a monkey patching) or to patch your Django.
  • To use the "like/ilike lookup" with Django 1.3, 1.2 or 1.1 you need to install django_like (this app make a monkey patching), You could patch your Django but I have not make a patch, but this will be very easy. You only have to see the monkey patch and to update the same, or you could see other patch and update more or less the same.
  • To use the "like/ilike lookup" with Django 1.7 you only need to install django_like but now this application does not make monkey patching. Now Django provide an API to do it.
INSTALLED_APPS = (

    'django_like',

)
Or apply some of the next patches (This is not neccesary, you can only install the app):

Something that you can to do with like sentence

MyModel.objects.filter(field_name__like='xx%YY%zz')
MyModel.objects.filter(field_name__ilike='xx%yy%zz')
User.objects.filter(username__like='a%in')

It is more quick and more readable that something like this:

MyModel.objects.filter(field_name__regex='^xx.*YY.*zz$')

This app provider two new lookups: like and ilike.

Now you can compare the time it takes to run the same query, many times, with like and with regex

python manage.py benchmark_like

These are a results executing the benchmark_like in my machine:

Type & result \ Database postgres mysql sqllite oracle
like 0:00:50.727005 0:00:14.025656 0:01:36.089407 ?:??:??.??????
regex 0:01:38.410019 0:02:57.255685 0:09:39.527765 ?:??:??.??????
Improvement 254% 600% 503% ???%

You can get the bleeding edge version of django-like by doing a clone of its repository

git clone git://github.com/goinnn/django-like.git

In the source tree, you will find a directory called example. It contains a readily setup project that uses django-like. You can run it as usual:

python manage.py syncdb --noinput
python manage.py loaddata app_data
python manage.py runserver

About

Django application that provider the like and ilike lookups for the querysets

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages