【发布时间】:2015-02-23 10:46:15
【问题描述】:
我正在使用 Flask 和 SqlAlchemy 构建 API,但遇到了 fields.Url() 的问题,我无法弄清楚。我收到以下错误:
BuildError: ('storagenode_ep', MultiDict([('_sa_instance_state', <sqlalchemy.orm.state.InstanceState object at 0x4a76ad0>), ('id', 7), ('hostname', u'testNode1')]), None)
如果我只返回 id 而不是尝试使用field.Url(),它就可以正常工作。
下面的简化类演示了这个问题:
storagenode_fields = {
'hostname': fields.String,
'uri': fields.Url('storagenode_ep')
# 'id': fields.String
}
class StorageNodeAPI(Resource):
@marshal_with(storagenode_fields)
def get(self, storagenode_id):
return StorageNode.query.filter_by(id=storagenode_id).first()
api.add_resource(StorageNodeAPI, '/api/storagenodes/<string:storagenode_id>', endpoint='storagenode_ep')
我有read this 可以更好地了解端点的方式,但我仍然卡住了。
StorageNode class 定义如下:
class StorageNode(Base):
__tablename__ = 'storagenode'
id = Column(Integer, primary_key=True)
hostname = Column(String(150), unique=True)
【问题讨论】:
-
你解决过这个问题吗?我也有类似的问题。