feat: serializer 添加默认值,前端可以调用 (#5666)

perf: 优化默认值

Co-authored-by: ibuler <ibuler@qq.com>
This commit is contained in:
fit2bot
2021-03-02 19:18:25 +08:00
committed by GitHub
parent a56ac7b34e
commit f548b4bd2b
3 changed files with 51 additions and 10 deletions

View File

@@ -3,6 +3,7 @@
from __future__ import unicode_literals
from collections import OrderedDict
import datetime
from django.core.exceptions import PermissionDenied
from django.http import Http404
@@ -21,7 +22,7 @@ class SimpleMetadataWithFilters(SimpleMetadata):
attrs = [
'read_only', 'label', 'help_text',
'min_length', 'max_length',
'min_value', 'max_value', "write_only"
'min_value', 'max_value', "write_only",
]
def determine_actions(self, request, view):
@@ -59,9 +60,10 @@ class SimpleMetadataWithFilters(SimpleMetadata):
field_info['type'] = self.label_lookup[field]
field_info['required'] = getattr(field, 'required', False)
default = getattr(field, 'default', False)
if default and isinstance(default, (str, int)):
field_info['default'] = default
default = getattr(field, 'default', None)
if default is not None and default != empty:
if isinstance(default, (str, int, bool, datetime.datetime, list)):
field_info['default'] = default
for attr in self.attrs:
value = getattr(field, attr, None)