I notice that Django’s relational fields register 7 lookups:
fk.get_lookups()
'in' : <class 'django.db.models.fields.related_lookups.RelatedIn'>,
'exact' : <class 'django.db.models.fields.related_lookups.RelatedExact'>,
'lt' : <class 'django.db.models.fields.related_lookups.RelatedLessThan'>,
'gt' : <class 'django.db.models.fields.related_lookups.RelatedGreaterThan'>,
'gte' : <class 'django.db.models.fields.related_lookups.RelatedGreaterThanOrEqual'>,
'lte' : <class 'django.db.models.fields.related_lookups.RelatedLessThanOrEqual'>,
'isnull' : <class 'django.db.models.fields.related_lookups.RelatedIsNull'>}
- defined in django/related_lookups.py at stable/3.2.x · django/django · GitHub
- registered in django/related.py at stable/3.2.x · django/django · GitHub
I couldn’t find mention in the docs of what it means to apply lt / lte / gt / gte to a relation - whether it’s a single object or a set. Do they act as set comparison operators? Like, “this Post query is a subset of that Post query”?
What would Post.objects.filter(user__lte=foo)
mean?