def from_dict(self, dict_payload):
for field in self._meta.fields:
if field.name not in dict_payload:
continue
if isinstance(field, EmbeddedModelField):
self.from_dict_nested(field.name, field.embedded_model, dict_payload)
continue
if isinstance(field, ListField):
if isinstance(field.item_field, EmbeddedModelField):
self.from_dict_nested_list(field.name, field.item_field.embedded_model, dict_payload)
continue
if isinstance(field, DateTimeField):
self._date_from_string(field.name, dict_payload.get(field.name))
elif isinstance(field, DecimalField):
self._decimal_from_string(field.name, dict_payload.get(field.name))
elif field.name in dict_payload:
setattr(self, field.name, dict_payload[field.name])
if 'id' in dict_payload.keys():
self.id = dict_payload['id']
评论列表
文章目录