def serialize(self, attr_name, field_symbol,
assignment_template, field_obj):
# type: (str, str, str, fields.Field) -> IndentedString
body = IndentedString()
if self.context.is_serializing:
default_str = 'default'
default_value = field_obj.default
else:
default_str = 'missing'
default_value = field_obj.missing
if field_obj.required:
body += assignment_template.format('obj["{attr_name}"]'.format(
attr_name=attr_name))
return body
if default_value == missing:
body += 'if "{attr_name}" in obj:'.format(attr_name=attr_name)
with body.indent():
body += assignment_template.format('obj["{attr_name}"]'.format(
attr_name=attr_name))
else:
if callable(default_value):
default_str += '()'
body += assignment_template.format(
'obj.get("{attr_name}", {field_symbol}__{default_str})'.format(
attr_name=attr_name, field_symbol=field_symbol,
default_str=default_str))
return body
评论列表
文章目录