Fix incorrect ordering with self-referencing foreign keys

Ensure order_by on related "_id" fields takes precedence over
model Meta.ordering, avoiding extra joins and unexpected sort
order. Resolves issues with self-referential relations.
This commit is contained in:
utkarsh.arya@zomato.com 2025-11-15 23:01:02 +00:00
parent a59de6e89e
commit 745277205f
3 changed files with 139 additions and 1 deletions

View file

@ -59,3 +59,17 @@ class Reference(models.Model):
class Meta:
ordering = ('article',)
# Models for testing self-referencing foreign key ordering
class OneModel(models.Model):
root = models.ForeignKey("self", on_delete=models.CASCADE, null=True)
oneval = models.BigIntegerField(null=True)
class Meta:
ordering = ("-id",)
class TwoModel(models.Model):
record = models.ForeignKey(OneModel, on_delete=models.CASCADE)
twoval = models.BigIntegerField(null=True)