!21 serializers.py 中fields 过滤bug

Merge pull request !21 from 李强/dvadmin-liqianglog
pull/21/MERGE
李强 2021-04-27 08:50:13 +08:00 committed by Gitee
commit 867895847d
2 changed files with 10 additions and 7 deletions

View File

@ -58,7 +58,7 @@ class MonitorModelViewSet(CustomModelViewSet):
"memory": [], "memory": [],
} }
for ele in queryset: for ele in queryset:
data["cpu"].append(float(ele.get('cpu_sys', 0))) data["cpu"].append(float(ele.get('cpu_sys', 0)) / 100)
data["memory"].append(float(ele.get('mem_num', 0)) and round(float(ele.get('mem_sys', 0)) / data["memory"].append(float(ele.get('mem_num', 0)) and round(float(ele.get('mem_sys', 0)) /
float(ele.get('mem_num', 0)), 4)) float(ele.get('mem_num', 0)), 4))
return SuccessResponse(data=data) return SuccessResponse(data=data)

View File

@ -1,7 +1,10 @@
from functools import cached_property
from rest_framework import serializers from rest_framework import serializers
from rest_framework.serializers import ModelSerializer
from rest_framework.fields import empty from rest_framework.fields import empty
from rest_framework.request import Request from rest_framework.request import Request
from rest_framework.serializers import ModelSerializer
from rest_framework.utils.serializer_helpers import BindingDict
class CustomModelSerializer(ModelSerializer): class CustomModelSerializer(ModelSerializer):
@ -37,7 +40,7 @@ class CustomModelSerializer(ModelSerializer):
if self.creator_field_name in self.fields.fields: if self.creator_field_name in self.fields.fields:
validated_data[self.creator_field_name] = self.request.user validated_data[self.creator_field_name] = self.request.user
if self.dept_belong_id_field_name in self.fields.fields: if self.dept_belong_id_field_name in self.fields.fields:
validated_data[self.dept_belong_id_field_name] = getattr(self.request.user,'dept_id',None) validated_data[self.dept_belong_id_field_name] = getattr(self.request.user, 'dept_id', None)
return super().create(validated_data) return super().create(validated_data)
def update(self, instance, validated_data): def update(self, instance, validated_data):
@ -51,11 +54,11 @@ class CustomModelSerializer(ModelSerializer):
return getattr(self.request.user, 'username', None) return getattr(self.request.user, 'username', None)
return None return None
@cached_property
@property
def fields(self): def fields(self):
fields = super().fields fields = BindingDict(self)
for key, value in self.get_fields().items():
fields[key] = value
if not hasattr(self, '_context'): if not hasattr(self, '_context'):
return fields return fields