Django Natural Language Filter package
Project description
django-nlf
Django Natural Language Filter
Installation
Install using pip
,
pip install django-nlf
Then you can use the DjangoNLFilter
with a queryset and a string, containing the filter expression. Please see the Language Reference for more details.
from django_nlf import DjangoNLFilter
from .models import Article
nl_filter = DjangoNLFilter()
qs = Article.objects.all()
q = 'author.username is john or title contains news'
# equivalent to Article.objects.filter(Q(author__username="user") | Q(title__icontains="news"))
articles = nl_filter.filter(qs, q)
# Nested logical operators are also supported:
q = 'author.username is john and (title contains news or created_at <= 2020-06-05)'
# equivalent to
# Article.objects.filter(
# Q(author__username="user") & (Q(title__icontains="news") | Q(created_at__lte="2020-06-05"))
# )
articles = nl_filter.filter(qs, q)
Rest framework integration
You just need to simply add the natural language filter backend to your filter backends list.
REST_FRAMEWORK = {
...
'DEFAULT_FILTER_BACKENDS': (
'django_nlf.rest_framework.DjangoNLFilterBackend',
),
...
}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
django-nlf-0.0.2.tar.gz
(21.8 kB
view hashes)
Built Distribution
django_nlf-0.0.2-py3-none-any.whl
(26.3 kB
view hashes)
Close
Hashes for django_nlf-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ea7f7adb29e5ae0d5e2b3a3fb0a01650f30fdae9cf11c4769a31e8d4edef92e |
|
MD5 | f0a5afa170b82970dde3e28eae988d6a |
|
BLAKE2b-256 | 75c22f0355780ea479fd1a74bd79233b7a1856ed8a4e99fdec23d8e540a0b73f |