From e2849be72ccd5e1319236b208f5c745bbcc819cc Mon Sep 17 00:00:00 2001 From: ibuler Date: Fri, 10 May 2019 11:29:38 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E4=BF=AE=E6=94=B9=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E6=A0=91=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/api/node.py | 1 + apps/assets/models/node.py | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/apps/assets/api/node.py b/apps/assets/api/node.py index 829d4630a..51e830efc 100644 --- a/apps/assets/api/node.py +++ b/apps/assets/api/node.py @@ -122,6 +122,7 @@ class NodeChildrenAsTreeApi(generics.ListAPIView): nodes_invalid = Node.objects.exclude(key__startswith=self.node.key) queryset.extend(list(nodes_invalid)) queryset = [node.as_tree_node() for node in queryset] + queryset = sorted(queryset) return queryset def filter_assets(self, queryset): diff --git a/apps/assets/models/node.py b/apps/assets/models/node.py index e5e25c770..6b8f2714a 100644 --- a/apps/assets/models/node.py +++ b/apps/assets/models/node.py @@ -44,7 +44,15 @@ class Node(OrgModelMixin): return True self_key = [int(k) for k in self.key.split(':')] other_key = [int(k) for k in other.key.split(':')] - return self_key.__lt__(other_key) + self_parent_key = self_key[:-1] + other_parent_key = other_key[:-1] + + if self_parent_key == other_parent_key: + return self.name > other.name + if self_key != other_key: + return self_key > other_key + else: + return self.name > other.name def __lt__(self, other): return not self.__gt__(other) @@ -305,5 +313,3 @@ class Node(OrgModelMixin): for i in range(count): node = random.choice(cls.objects.all()) node.create_child('Node {}'.format(i)) - -