diff options
| author | Andreas Pelme <andreas@pelme.se> | 2018-02-16 03:00:31 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-02-15 21:00:31 -0500 |
| commit | e307ff29d28737d5a764ce2fa7db010231d6fc8e (patch) | |
| tree | ac6cf4a88d36e5cb5de2c7a28f32a55ded650bfa /django | |
| parent | d368784bacc7e58b426f29937ee842aa14d439ad (diff) | |
Fixed #27810 -- Allowed query expressions in admin_order_field.
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/views/main.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index 761ed3a754..fa7b2a6036 100644 --- a/django/contrib/admin/views/main.py +++ b/django/contrib/admin/views/main.py @@ -286,8 +286,11 @@ class ChangeList: order_field = self.get_ordering_field(field_name) if not order_field: continue # No 'admin_order_field', skip it + if hasattr(order_field, 'as_sql'): + # order_field is an expression. + ordering.append(order_field.desc() if pfx == '-' else order_field.asc()) # reverse order if order_field has already "-" as prefix - if order_field.startswith('-') and pfx == "-": + elif order_field.startswith('-') and pfx == '-': ordering.append(order_field[1:]) else: ordering.append(pfx + order_field) |
