[Update] 修复获取节点数量比较慢的问题 (#2184)

This commit is contained in:
老广
2018-12-17 11:49:57 +08:00
committed by GitHub
parent 985bd6fc82
commit b95f8a7d6b
6 changed files with 83 additions and 45 deletions

View File

@@ -43,7 +43,7 @@ class NodeGrantedSerializer(BulkSerializerMixin, serializers.ModelSerializer):
class NodeSerializer(serializers.ModelSerializer):
assets_amount = serializers.SerializerMethodField()
assets_amount = serializers.IntegerField()
tree_id = serializers.SerializerMethodField()
tree_parent = serializers.SerializerMethodField()
@@ -53,6 +53,10 @@ class NodeSerializer(serializers.ModelSerializer):
'id', 'key', 'value', 'assets_amount',
'is_node', 'org_id', 'tree_id', 'tree_parent',
]
read_only_fields = [
'id', 'key', 'assets_amount', 'is_node',
'org_id',
]
list_serializer_class = BulkListSerializer
def validate(self, data):
@@ -66,12 +70,6 @@ class NodeSerializer(serializers.ModelSerializer):
)
return data
@staticmethod
def get_assets_amount(obj):
if hasattr(obj, 'assets_amount'):
return obj.assets_amount
return obj.get_all_assets().count()
@staticmethod
def get_tree_id(obj):
return obj.key
@@ -80,12 +78,6 @@ class NodeSerializer(serializers.ModelSerializer):
def get_tree_parent(obj):
return obj.parent_key
def get_fields(self):
fields = super().get_fields()
field = fields["key"]
field.required = False
return fields
class NodeAssetsSerializer(serializers.ModelSerializer):
assets = serializers.PrimaryKeyRelatedField(many=True, queryset=Asset.objects.all())