Skip to main content

Lookup Reference

All built-in lookups and their SQL translations.

LookupSQLValue TransformationExample
exactcol = ?Nonefilter(title="Hello")
gtcol > ?Nonefilter(views__gt=100)
gtecol >= ?Nonefilter(views__gte=100)
ltcol < ?Nonefilter(views__lt=50)
ltecol <= ?Nonefilter(views__lte=1000)
containscol LIKE ?Wrap with %...%filter(title__contains="Py")
icontainsLOWER(col) LIKE LOWER(?)Wrap + lowercasefilter(title__icontains="py")
startswithcol LIKE ?Suffix with %filter(title__startswith="How")
istartswithLOWER(col) LIKE LOWER(?)Suffix + lowercasefilter(title__istartswith="how")
endswithcol LIKE ?Prefix with %filter(title__endswith="guide")
iendswithLOWER(col) LIKE LOWER(?)Prefix + lowercasefilter(title__iendswith="Guide")
isnullcol IS NULL / IS NOT NULLNo bind paramfilter(body__isnull=True)
incol IN (?, ?, ...)Expanded from listfilter(id__in=[1,2,3])
rangecol BETWEEN ? AND ?Two bind paramsfilter(views__range=(100,1000))

Default Lookup

When no lookup is specified, exact is used:

Post.objects.filter(active=True)
# Equivalent to:
Post.objects.filter(active__exact=True)

Custom Lookups

Register additional lookups at runtime:

import ryx
ryx.register_lookup("ilike", "{col} ILIKE ?")

See Custom Lookups for details.