old_contents: import datetime
  import sys
  
  from peewee import Model
  from flask_peewee.utils import get_dictionary_from_model
  from flask_peewee.utils import get_model_from_dictionary
  
  
  class Serializer(object):
      date_format = '%Y-%m-%d'
      time_format = '%H:%M:%S'
      datetime_format = ' '.join([date_format, time_format])
  
      def convert_value(self, value):
          if isinstance(value, datetime.datetime):
              return value.strftime(self.datetime_format)
          elif isinstance(value, datetime.date):
              return value.strftime(self.date_format)
          elif isinstance(value, datetime.time):
              return value.strftime(self.time_format)
          elif isinstance(value, Model):
              return value.get_id()
          else:
              return value
  
      def clean_data(self, data):
          for key, value in data.items():
              if isinstance(value, dict):
                  self.clean_data(value)
              elif isinstance(value, (list, tuple)):
                  data[key] = map(self.clean_data, value)
              else:
                  data[key] = self.convert_value(value)
          return data
  
      def serialize_object(self, obj, fields=None, exclude=None):
          data = get_dictionary_from_model(obj, fields, exclude)
          return self.clean_data(data)
  
  
  class Deserializer(object):
      def deserialize_object(self, model, data):
          return get_model_from_dictionary(model, data)
  
new_contents: import datetime
  import sys
  
  from peewee import Model
  from flask_peewee.utils import get_dictionary_from_model
  from flask_peewee.utils import get_model_from_dictionary
  
  
  class Serializer(object):
      date_format = '%Y-%m-%d'
      time_format = '%H:%M:%S'
      datetime_format = ' '.join([date_format, time_format])
  
      def convert_value(self, value):
          if isinstance(value, datetime.datetime):
              return value.strftime(self.datetime_format)
          elif isinstance(value, datetime.date):
              return value.strftime(self.date_format)
          elif isinstance(value, datetime.time):
              return value.strftime(self.time_format)
          elif isinstance(value, Model):
              return value.get_id()
          else:
              return value
  
      def clean_data(self, data):
          for key, value in data.items():
              if isinstance(value, dict):
                  self.clean_data(value)
              elif isinstance(value, (list, tuple)):
                  data[key] = map(self.convert_value, value)
              else:
                  data[key] = self.convert_value(value)
          return data
  
      def serialize_object(self, obj, fields=None, exclude=None):
          data = get_dictionary_from_model(obj, fields, exclude)
          return self.clean_data(data)
  
  
  class Deserializer(object):
      def deserialize_object(self, model, data):
          return get_model_from_dictionary(model, data)
  
subject: Fix serializer list behavior, fixes #146