Browse Source

perf: 接口sql优化 /api/v1/accounts/account-templates/su-from-account-templates/

pull/10826/head
fangfang.dong 1 year ago
parent
commit
4e9012cc07
  1. 3
      apps/accounts/api/account/template.py
  2. 6
      apps/accounts/models/account.py

3
apps/accounts/api/account/template.py

@ -49,8 +49,7 @@ class AccountTemplateViewSet(OrgBulkModelViewSet):
@action(methods=['get'], detail=False, url_path='su-from-account-templates')
def su_from_account_templates(self, request, *args, **kwargs):
pk = request.query_params.get('template_id')
template = AccountTemplate.objects.filter(pk=pk).first()
templates = AccountTemplate.get_su_from_account_templates(template)
templates = AccountTemplate.get_su_from_account_templates(pk)
templates = self.filter_queryset(templates)
serializer = self.get_serializer(templates, many=True)
return Response(data=serializer.data)

6
apps/accounts/models/account.py

@ -124,10 +124,10 @@ class AccountTemplate(BaseAccount):
]
@classmethod
def get_su_from_account_templates(cls, instance=None):
if not instance:
def get_su_from_account_templates(cls, pk=None):
if pk is None:
return cls.objects.all()
return cls.objects.exclude(Q(id=instance.id) | Q(su_from=instance))
return cls.objects.exclude(Q(id=pk) | Q(_id=pk))
def get_su_from_account(self, asset):
su_from = self.su_from

Loading…
Cancel
Save