From a315df29ca2d403ddd400623616e6304bf2b9950 Mon Sep 17 00:00:00 2001 From: ibuler Date: Mon, 12 Aug 2019 19:11:32 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E6=9A=82=E6=97=B6=E4=B8=8D=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=E8=BF=99=E9=87=8C=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/models/node.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/assets/models/node.py b/apps/assets/models/node.py index 96a9b7acb..c1e47d56b 100644 --- a/apps/assets/models/node.py +++ b/apps/assets/models/node.py @@ -329,8 +329,14 @@ class Node(OrgModelMixin, FamilyMixin, FullValueMixin, AssetsAmountMixin): def get_all_assets(self): from .asset import Asset - children = self.get_all_children() - assets = Asset.objects.filter(nodes__in=children).distinct() + pattern = r'^{0}$|^{0}:'.format(self.key) + args = [] + kwargs = {} + if self.is_root(): + args.append(Q(nodes__key__regex=pattern) | Q(nodes=None)) + else: + kwargs['nodes__key__regex'] = pattern + assets = Asset.objects.filter(*args, **kwargs).distinct() return assets def get_all_valid_assets(self):