Django application that provider the like and ilike lookups for the querysets
Project description
django-like
Information
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>
Requeriments
Django (>=1.1). It’s possible that works with other versions lower 1.1
Installation
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.
In your settings.py
INSTALLED_APPS = ( 'django_like', )
- Or apply some of the next patches (This is not neccesary, you can only install the app):
Usage
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% |
???% |
Reported
Development
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
Example project
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
0.2.0 (2014-10-13)
Support to Django 1.7.
For Django 1.7, django_like use the lookup API
0.1.0 (2013-12-20)
Added example project
Added tests (for SQLite, MySQL and PostgreSQL)
Integrated with travis and coverals
Python2.6 compatible (benchmark_like)
Added patche to Django 1.6
0.0.7 (2013-09-11)
Add licese file
0.0.6 (2013-09-10)
Fix README typo
0.0.5 (2013-08-14)
Fix README typo
0.0.4 (2013-08-14)
Improve the README
Fix a littles bugs
Python3 compatible
Django 1.5 compatible
- Thanks to:
0.0.3 (2012-02-14)
Fix a broken link in the readme
0.0.2 (2012-02-13)
Add benchmark command
0.0.1 (2011-12-28)
First version to django-like
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-like-0.2.0.tar.gz
.
File metadata
- Download URL: django-like-0.2.0.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71022f8f356a694b84470b2125b1f72e9aebc048b4205a391e37d1a915ebeb1e |
|
MD5 | 1059c11074597e3ff7c39a2082049df9 |
|
BLAKE2b-256 | 84cc8697c4c6af8652bb301ada97e0b04aa5a9e7a4aa6c67181d0edb6a9af193 |