summaryrefslogtreecommitdiff
path: root/django/forms/forms.py
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2017-01-27 12:46:21 -0500
committerGitHub <noreply@github.com>2017-01-27 12:46:21 -0500
commite07e743e0c375b380748561d18b975c8211a4a01 (patch)
treee1ecf45b049220ba66dfa10f05b814472e87b51c /django/forms/forms.py
parentd2e40dd8c2031cd03700e72d87d455d5e974800c (diff)
Refs #23919 -- Used DeclarativeFieldsMetaclass.__prepare__() for tracking form field order.
Diffstat (limited to 'django/forms/forms.py')
-rw-r--r--django/forms/forms.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/django/forms/forms.py b/django/forms/forms.py
index 7fccdc2b65..5770f6d609 100644
--- a/django/forms/forms.py
+++ b/django/forms/forms.py
@@ -34,7 +34,6 @@ class DeclarativeFieldsMetaclass(MediaDefiningClass):
if isinstance(value, Field):
current_fields.append((key, value))
attrs.pop(key)
- current_fields.sort(key=lambda x: x[1].creation_counter)
attrs['declared_fields'] = OrderedDict(current_fields)
new_class = super(DeclarativeFieldsMetaclass, mcs).__new__(mcs, name, bases, attrs)
@@ -56,6 +55,11 @@ class DeclarativeFieldsMetaclass(MediaDefiningClass):
return new_class
+ @classmethod
+ def __prepare__(metacls, name, bases, **kwds):
+ # Remember the order in which form fields are defined.
+ return OrderedDict()
+
@html_safe
class BaseForm: