summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/forms/models.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/django/forms/models.py b/django/forms/models.py
index 626e727e3a..41380f21e9 100644
--- a/django/forms/models.py
+++ b/django/forms/models.py
@@ -406,6 +406,13 @@ class BaseModelFormSet(BaseFormSet):
qs = self.queryset
else:
qs = self.model._default_manager.get_query_set()
+
+ # 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 self.max_num > 0:
self._queryset = qs[:self.max_num]
else: