Concept Flow - Field lookups (exact, contains, gt, lt)
Start Query
Choose Field Lookup
Apply Filter Condition
Database Filters Rows
Return Filtered Results
End
This flow shows how Django applies field lookups to filter database records step-by-step.
Book.objects.filter(title__exact='Django') Book.objects.filter(title__contains='Django') Book.objects.filter(pages__gt=100) Book.objects.filter(pages__lt=50)
| Step | Query | Lookup Type | Condition Evaluated | Rows Matched | Result |
|---|---|---|---|---|---|
| 1 | title__exact='Django' | exact | title == 'Django' | 2 | Returns 2 books with title exactly 'Django' |
| 2 | title__contains='Django' | contains | 'Django' in title | 3 | Returns 3 books with 'Django' in title |
| 3 | pages__gt=100 | gt | pages > 100 | 4 | Returns 4 books with pages greater than 100 |
| 4 | pages__lt=50 | lt | pages < 50 | 1 | Returns 1 book with pages less than 50 |
| 5 | End | - | - | - | No more queries |
| Variable | Start | After Query 1 | After Query 2 | After Query 3 | After Query 4 | Final |
|---|---|---|---|---|---|---|
| filtered_books | [] | [Book1, Book2] | [Book1, Book2, Book3] | [Book4, Book5, Book6, Book7] | [Book8] | Final filtered sets per query |
Django field lookups filter querysets by conditions. Use __exact for exact match. Use __contains for substring match. Use __gt and __lt for greater or less than comparisons. Filters return matching database rows. Syntax: Model.objects.filter(field__lookup=value).