diff options
| author | Rodrigo Vieira <rodrigo.vieira@gmail.com> | 2026-03-31 20:34:56 -0300 |
|---|---|---|
| committer | Jacob Walls <jacobtylerwalls@gmail.com> | 2026-04-01 13:51:37 -0400 |
| commit | 856c915326768962806705ca7733e4abbb8f794f (patch) | |
| tree | fbadce8821a1d4dbd5e7aeba0a5b70f76463704e /django/forms | |
| parent | 08aa1b5ac8fd95d165aad749f3ce29de4aa1be0d (diff) | |
Fixed #37004 -- Used QuerySet.totally_ordered in BaseModelFormSet.get_queryset() for stable ordering.
Diffstat (limited to 'django/forms')
| -rw-r--r-- | django/forms/models.py | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/django/forms/models.py b/django/forms/models.py index 104369c0b0..a53f119995 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -776,8 +776,9 @@ class BaseModelFormSet(BaseFormSet, AltersData): # If the queryset isn't already ordered we need to add an # artificial ordering here to make sure that all formsets # constructed from this queryset have the same form order. - if not qs.ordered: - qs = qs.order_by(self.model._meta.pk.name) + if not qs.totally_ordered: + current_ordering = qs.query.order_by or qs.model._meta.ordering or [] + qs = qs.order_by(*current_ordering, "pk") # Removed queryset limiting here. As per discussion re: #13023 # on django-dev, max_num should not prevent existing |
