Following this question, I'm trying to get top 10 records per each group_by critera, but Django return this error:
from django.db.models import F, Window
from django.db.models.functions import RowNumber
Purchases.objects.annotate(row_number=Window(
expression=RowNumber(),
partition_by=F('customer'),
order_by=F('field_of_interest').desc()
)
).filter(row_number=10)
raise NotSupportedError(
django.db.utils.NotSupportedError: Window is disallowed in the filter clause.
When I remove .desc(), error message changes to:
ValueError: order_by must be either an Expression or a sequence of expressions.
I'm using PostgreSql. Is it a bug or am I wrong somewhere in my query?