我正在尝试按照文档的建议,使用带有Marshmallow的自定义反序列化器来排除Flask-Restless API 中的列:
序列化程序.py
class HeatSchema(Schema):
id = fields.Integer()
heat_index = fields.Integer()
updated_at = fields.DateTime()
class Meta:
exclude = ('updated_at',)
def make_object(self, data):
print 'Making object from', data
return Heat(**data)
服务器.py
from serializers import HeatSchema
heat_schema = HeatSchema()
def heat_serializer(instance):
return heat_schema.dump(instance).data
def heat_deserializer(data):
return heat_schema.load(data).data
apimanager = APIManager(app, flask_sqlalchemy_db=db)
apimanager.create_api(
heat,
methods=['GET'],
url_prefix='/api/v1',
collection_name='heat',
results_per_page=10,
serializer=heat_serializer,
deserializer=heat_deserializer
)
无论我对 Heat 模式做什么,我都会从 API 获得相同的响应。我可以放
blahblah = fields.Integer()
没有任何变化。在调试时我什至无法在序列化程序中遇到断点,所以我假设我的 Flask-Restless 设置不正确?