diff options
| author | zeyneloz <ozdemir.zynl@gmail.com> | 2019-08-15 06:54:41 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-08-15 13:14:17 +0200 |
| commit | c2732e6839fffd96b136607f10af95fe58e0de17 (patch) | |
| tree | 6a84cb8840503a0b330c117df91056b994bd734a /django/db | |
| parent | 52a7759a4916484953c8e5a7d2f260dd1c1e3c12 (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__.py | 6 | ||||
| -rw-r--r-- | django/db/models/fields/reverse_related.py | 5 |
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): |
