summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
Diffstat (limited to 'django')
-rw-r--r--django/contrib/admin/templatetags/admin_list.py3
-rw-r--r--django/contrib/admin/views/main.py2
2 files changed, 5 insertions, 0 deletions
diff --git a/django/contrib/admin/templatetags/admin_list.py b/django/contrib/admin/templatetags/admin_list.py
index b03e4b6470..fe4249ae5b 100644
--- a/django/contrib/admin/templatetags/admin_list.py
+++ b/django/contrib/admin/templatetags/admin_list.py
@@ -128,6 +128,9 @@ def result_headers(cl):
continue
admin_order_field = getattr(attr, "admin_order_field", None)
+ # Set ordering for attr that is a property, if defined.
+ if isinstance(attr, property) and hasattr(attr, 'fget'):
+ admin_order_field = getattr(attr.fget, 'admin_order_field')
if not admin_order_field:
is_field_sortable = False
diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py
index 978910df26..7d8d33d9d7 100644
--- a/django/contrib/admin/views/main.py
+++ b/django/contrib/admin/views/main.py
@@ -264,6 +264,8 @@ class ChangeList:
attr = getattr(self.model_admin, field_name)
else:
attr = getattr(self.model, field_name)
+ if isinstance(attr, property) and hasattr(attr, 'fget'):
+ attr = attr.fget
return getattr(attr, 'admin_order_field', None)
def get_ordering(self, request, queryset):