summaryrefslogtreecommitdiff
path: root/django/db
diff options
context:
space:
mode:
authorzeyneloz <ozdemir.zynl@gmail.com>2019-08-15 06:54:41 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-08-15 13:14:17 +0200
commitc2732e6839fffd96b136607f10af95fe58e0de17 (patch)
tree6a84cb8840503a0b330c117df91056b994bd734a /django/db
parent52a7759a4916484953c8e5a7d2f260dd1c1e3c12 (diff)
[2.2.x] Fixed #30449 -- Fixed RelatedFieldListFilter/RelatedOnlyFieldListFilter to respect model's Meta.ordering.
Regression in 6d4e5feb79f7eabe8a0c7c4b87f25b1a7f87ca0b. Co-Authored-By: Mariusz Felisiak <felisiak.mariusz@gmail.com> Backport of 00035672a460b6eb5442d2837bc783f8af28c6f3 from master
Diffstat (limited to 'django/db')
-rw-r--r--django/db/models/fields/__init__.py6
-rw-r--r--django/db/models/fields/reverse_related.py5
2 files changed, 8 insertions, 3 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index 324bb0bf75..2210b56dbe 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -826,9 +826,11 @@ class Field(RegisterLookupMixin):
if hasattr(self.remote_field, 'get_related_field')
else 'pk'
)
+ qs = rel_model._default_manager.complex_filter(limit_choices_to)
+ if ordering:
+ qs = qs.order_by(*ordering)
return (blank_choice if include_blank else []) + [
- (choice_func(x), str(x))
- for x in rel_model._default_manager.complex_filter(limit_choices_to).order_by(*ordering)
+ (choice_func(x), str(x)) for x in qs
]
def value_to_string(self, obj):
diff --git a/django/db/models/fields/reverse_related.py b/django/db/models/fields/reverse_related.py
index eb6b934259..700410a086 100644
--- a/django/db/models/fields/reverse_related.py
+++ b/django/db/models/fields/reverse_related.py
@@ -122,8 +122,11 @@ class ForeignObjectRel(FieldCacheMixin):
Analog of django.db.models.fields.Field.get_choices(), provided
initially for utilization by RelatedFieldListFilter.
"""
+ qs = self.related_model._default_manager.all()
+ if ordering:
+ qs = qs.order_by(*ordering)
return (blank_choice if include_blank else []) + [
- (x.pk, str(x)) for x in self.related_model._default_manager.order_by(*ordering)
+ (x.pk, str(x)) for x in qs
]
def is_hidden(self):