perf: 修改 su-from-accounts API

pull/9223/head
Bai 2 years ago
parent dddff03336
commit 362cfb733c

@ -6,7 +6,7 @@ from rest_framework.generics import CreateAPIView, ListAPIView
from orgs.mixins.api import OrgBulkModelViewSet from orgs.mixins.api import OrgBulkModelViewSet
from common.mixins import RecordViewLogMixin from common.mixins import RecordViewLogMixin
from assets.models import Account from assets.models import Account, Asset
from assets.filters import AccountFilterSet from assets.filters import AccountFilterSet
from assets.tasks import verify_accounts_connectivity from assets.tasks import verify_accounts_connectivity
from assets import serializers from assets import serializers
@ -30,10 +30,18 @@ class AccountViewSet(OrgBulkModelViewSet):
'su_from_accounts': 'assets.view_account', 'su_from_accounts': 'assets.view_account',
} }
@action(methods=['get'], detail=True, url_path='su-from-accounts') @action(methods=['get'], detail=False, url_path='su-from-accounts')
def su_from_accounts(self, request, *args, **kwargs): def su_from_accounts(self, request, *args, **kwargs):
account = get_object_or_404(Account, pk=self.kwargs['pk']) account_id = request.query_params.get('account')
accounts = account.get_su_from_accounts() asset_id = request.query_params.get('asset')
if account_id:
account = get_object_or_404(Account, pk=account_id)
accounts = account.get_su_from_accounts()
elif asset_id:
asset = get_object_or_404(Asset, pk=asset_id)
accounts = asset.accounts.all()
else:
accounts = []
serializer = serializers.AccountSerializer(accounts, many=True) serializer = serializers.AccountSerializer(accounts, many=True)
return Response(data=serializer.data) return Response(data=serializer.data)

Loading…
Cancel
Save