Current Django Version: 2.2
Methods that return new QuerySets
Can be chained:
Entry.objects.filter(**kwargs).exclude(**kwargs).order_by(**kwargs)
- filter
- exclude
- annotate
- order_by
- reverse
- distinct
- values
- values_list
- dates
- datetimes
- none
- all
- union
- intersection
- difference
- select_related
- prefetch_related
- extra
- defer
- only
- using
- select_for_update
- raw
- get
- create
- get_or_create
- update_or_create
- bulk_create
- bulk_update (new in 2.2)
- count
- in_bulk
- iterator
- latest
- earliest
- first
- last
- aggregate
- exists
- update
- delete
- as_manager
- explain (new in 2.1)
Field lookups are how you specify the meat of an SQL WHERE clause. They’re specified as keyword arguments to the QuerySet methods filter(), exclude() and get().
Example: Entry.objects.get(id__exact=14) # note double underscore.
- exact
- iexact
- contains
- icontains
- in
- gt
- gte
- lt
- lte
- startswith
- istartswith
- endswith
- iendswith
- range
- date
- year
- iso_year (new in 2.2)
- month
- day
- week
- week_day
- quarter
- time
- hour
- minute
- second
- isnull
- regex
- iregex
Protip: Use in to avoid chaining filter() and exclude()
Entry.objects.filter(status__in=['Hung over', 'Sober', 'Drunk'])
Django-QuerySet-Cheatsheet by @chrisdl and @briandant is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
The contributors are as gods among ants and shall forever be remembered as such.
The Django web framework referenced in the Django-QuerySet-Cheatsheet is © 2005-2018 Django Software Foundation. Django is a registered trademark of the Django Software Foundation.