def _serialize(self, value: Any) -> str:
if isinstance(value, str):
return value
elif isinstance(value, int) or isinstance(value, float) \
or isinstance(value, bool) or isinstance(value, decimal.Decimal):
return str(value)
elif isinstance(value, list) or isinstance(value, dict):
return json.dumps(value)
elif isinstance(value, datetime) or isinstance(value, date) or isinstance(value, time):
return value.isoformat()
elif isinstance(value, Model):
return value.pk
elif isinstance(value, File):
return 'file://' + value.name
else:
for t in self._h.types:
if isinstance(value, t.type):
return t.serialize(value)
raise TypeError('Unable to serialize %s into a setting.' % str(type(value)))
评论列表
文章目录