Skip to main content

Django Natural Language Filter package

Project description

PyPi Version PyPi Downloads Tests Weekly Documentation Code style: black Total alerts Language grade: Python

Django Natural Language Filter

Django NLF provides a simple and easy way to express complex filtering criteria with a filtering language as close to natural language as possible, while providing APIs to further customize the user experience.

Installation

Install using pip,

pip install django-nlf

And add django_nlf to your INSTALLED_APPS.

INSTALLED_APPS = [
    ...
    "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.filters 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="john") | 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="john") & (Q(title__icontains="news") | Q(created_at__lte="2020-06-05"))
# )
articles = nl_filter.filter(qs, q)

Django REST framework integration

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.4.tar.gz (30.9 kB view details)

Uploaded Source

Built Distribution

django_nlf-0.0.4-py3-none-any.whl (35.2 kB view details)

Uploaded Python 3

File details

Details for the file django-nlf-0.0.4.tar.gz.

File metadata

  • Download URL: django-nlf-0.0.4.tar.gz
  • Upload date:
  • Size: 30.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.9.1

File hashes

Hashes for django-nlf-0.0.4.tar.gz
Algorithm Hash digest
SHA256 a3dae9e92425522fe324e37e5f0e8c233c2a6e2f955d88358efdf20571f9c910
MD5 f1151120879aa390a347e130a9771483
BLAKE2b-256 35f7613e2e850168634e8806e95f0dcd0bfd731abec0a0c1a6abfc4eb7c0e57f

See more details on using hashes here.

File details

Details for the file django_nlf-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: django_nlf-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 35.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.9.1

File hashes

Hashes for django_nlf-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7514a3ab66edeec8a69b4eb761955b9a58a18ba5bb34fc97949c901c16405428
MD5 35d457667c31a2c6cfd6365eff5f1200
BLAKE2b-256 c6c7a4c122f0804e9e3740da47e4d752d3f7286814c08dd5f72f3c1987a37f60

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page