Django¶
The lifter.contrib.django
module provides integration of lifter’s Python backend
on django’s queryset. Once configured, you can apply additional filters and orderings to a django queryset
without extra calls to database.
It is compatible with django versions >= 1.7.
Installation¶
You just need to add lifter.contrib.django
to your installed apps:
INSTALLED_APPS = [
# your other apps
'lifter.contrib.django',
]
Internally, the application will monkey patch django’s QuerySet
, by adding a single method.
Usage¶
Usage is really simple:
from django.contrib.auth import User
# this is your regular django queryset
all_users = User.objects.all()
# we convert it to lifter Python's backend
local_qs = all_users.locally()
# the first query will evaluate the django's queryset (if needed),
# triggering a database query
local_qs.count()
>>> 157
# other queries are executed locally, on already loaded models,
# so no database query will be thrown
for user in local_qs.exclude(username='bob').order_by('-username'):
print(user)
Of course, you can any method or lookup that is supported by lifter’s Python backend.