perf: custom fields 仅custom 类型资产支持

This commit is contained in:
ibuler
2023-04-18 17:07:01 +08:00
parent 5921b2ee8f
commit 8b98bbddaa
5 changed files with 60 additions and 45 deletions

View File

@@ -1,3 +1,5 @@
import logging
from django.utils.functional import cached_property
from django.utils.translation import gettext_lazy as _
from drf_writable_nested.serializers import WritableNestedModelSerializer as NestedModelSerializer
@@ -35,7 +37,11 @@ class MethodSerializer(serializers.Serializer):
@cached_property
def serializer(self) -> serializers.Serializer:
method = getattr(self.parent, self.method_name)
_serializer = method()
try:
_serializer = method()
except Exception as e:
logging.error(e, exc_info=True)
raise e
# 设置serializer的parent值否则在serializer实例中获取parent会出现断层
setattr(_serializer, 'parent', self.parent)
return _serializer