From 289017de00401252dcdff27ddd13c57764fa44ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Sat, 21 Dec 2019 18:07:39 +0100 Subject: [PATCH] support multi-level order_by --- src/c3nav/editor/wrappers.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/c3nav/editor/wrappers.py b/src/c3nav/editor/wrappers.py index 0ad950a9..0eafe1cf 100644 --- a/src/c3nav/editor/wrappers.py +++ b/src/c3nav/editor/wrappers.py @@ -901,7 +901,14 @@ class QuerySetWrapper(BaseQueryWrapper): for field in ordering: fact = -1 if field[0] == '-' else 1 field = field.lstrip('-') - val = getattr(obj, field.lstrip('-')) + + field_split = field.split('__') + field = field_split.pop() + final_obj = obj + for subfield in field_split: + final_obj = getattr(final_obj, subfield) + + val = getattr(obj, field) if field in ('id', 'pk'): if isinstance(val, int): result.extend((1*fact, val*fact))