support multi-level order_by
This commit is contained in:
parent
548f442e81
commit
289017de00
1 changed files with 8 additions and 1 deletions
|
@ -901,7 +901,14 @@ class QuerySetWrapper(BaseQueryWrapper):
|
||||||
for field in ordering:
|
for field in ordering:
|
||||||
fact = -1 if field[0] == '-' else 1
|
fact = -1 if field[0] == '-' else 1
|
||||||
field = field.lstrip('-')
|
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 field in ('id', 'pk'):
|
||||||
if isinstance(val, int):
|
if isinstance(val, int):
|
||||||
result.extend((1*fact, val*fact))
|
result.extend((1*fact, val*fact))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue