diff --git a/apps/assets/api/node.py b/apps/assets/api/node.py index 0788db3cd..a6072806d 100644 --- a/apps/assets/api/node.py +++ b/apps/assets/api/node.py @@ -130,7 +130,9 @@ class NodeChildrenAsTreeApi(generics.ListAPIView): include_assets = self.request.query_params.get('assets', '0') == '1' if not include_assets: return queryset - assets = self.node.get_assets() + assets = self.node.get_assets().prefetch_related("protocols").only( + "id", "hostname", "ip", 'platform', "os", "org_id", + ) for asset in assets: queryset.append(asset.as_tree_node(self.node)) return queryset diff --git a/apps/assets/serializers/asset.py b/apps/assets/serializers/asset.py index b83a6067c..6af18b84c 100644 --- a/apps/assets/serializers/asset.py +++ b/apps/assets/serializers/asset.py @@ -138,30 +138,6 @@ class AssetSerializer(BulkOrgResourceModelSerializer): return instance -# class AssetAsNodeSerializer(serializers.ModelSerializer): -# protocols = ProtocolSerializer(many=True) -# -# class Meta: -# model = Asset -# fields = ['id', 'hostname', 'ip', 'platform', 'protocols'] - - - -# class MyAssetGrantedSerializer(AssetGrantedSerializer): -# """ -# 普通用户获取授权的资产定义的数据结构 -# """ -# protocols = ProtocolSerializer(many=True) -# -# class Meta: -# model = Asset -# fields = ( -# "id", "hostname", "system_users_granted", -# "is_active", "system_users_join", "org_name", -# "os", "platform", "comment", "org_id", "protocols" -# ) - - class AssetSimpleSerializer(serializers.ModelSerializer): class Meta: diff --git a/apps/perms/api/asset_permission.py b/apps/perms/api/asset_permission.py index cfa47474e..267d83971 100644 --- a/apps/perms/api/asset_permission.py +++ b/apps/perms/api/asset_permission.py @@ -155,7 +155,9 @@ class AssetPermissionViewSet(viewsets.ModelViewSet): return queryset def get_queryset(self): - return self.queryset.all() + return self.queryset.all().prefetch_related( + "nodes", "assets", "users", "user_groups", "system_users" + ) class AssetPermissionRemoveUserApi(RetrieveUpdateAPIView): diff --git a/apps/perms/forms/asset_permission.py b/apps/perms/forms/asset_permission.py index 3d48c098a..fb63517ff 100644 --- a/apps/perms/forms/asset_permission.py +++ b/apps/perms/forms/asset_permission.py @@ -1,7 +1,6 @@ # ~*~ coding: utf-8 ~*~ from __future__ import absolute_import, unicode_literals -from functools import reduce from django import forms from django.utils.translation import ugettext_lazy as _ diff --git a/apps/perms/templates/perms/asset_permission_create_update.html b/apps/perms/templates/perms/asset_permission_create_update.html index af7157efc..f45ef8e0d 100644 --- a/apps/perms/templates/perms/asset_permission_create_update.html +++ b/apps/perms/templates/perms/asset_permission_create_update.html @@ -48,7 +48,7 @@ {% bootstrap_field form.system_users layout="horizontal" %}

{% trans 'Action' %}

- {% bootstrap_field form.action layout="horizontal" %} + {% bootstrap_field form.actions layout="horizontal" %}

{% trans 'Other' %}