【问题标题】:Returning custom property from flask-restless从flask-restless返回自定义属性
【发布时间】:2012-05-11 15:24:12
【问题描述】:

我想从烧瓶中返回一个自定义属性,例如

class Item(db.Model):
    creator_id = db.Column(db.Integer, db.ForeignKey('User.id'))
    owner_id = db.Column(db.Integer, db.ForeignKey('User.id'))
    owner = db.relationship("User",backref="items",primary_join="Item.owner_id==User.id")
    owner = db.relationship("User",backref="created_items",primary_join="Item.creator_id==User.id")        


class User(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    firstName = db.Column(db.Unicode(50), nullable = False)
    lastName = db.Column(db.Unicode(50), nullable = False)
    email = db.Column(db.Unicode(100), nullable = False)

我希望能够在项目中为创建者返回 firstName + " " + lastName /api/User/1 用于无烧瓶

【问题讨论】:

    标签: python flask flask-sqlalchemy


    【解决方案1】:

    如果不修改flask-restless,您将无法真正做到这一点。如果您查看flask-restless 源代码,在views.py 中,_to_dict 方法显式迭代对象的属性,并且仅包括那些是SQLAlchemy 的ColumnProperty 类型实例的属性。

    该函数将是开始的地方,更改该代码以包含一些其他类型的属性,然后将一个属性添加到您的User 类,该类连接firstNamelastName

    【讨论】:

    • 更新:Flask-Restless added support for SQLAlchemy's hybrid_property,所以现在如果你用 @hybrid_property 定义你的属性,它们应该出现在你的 API 中。您还必须在混合属性上定义一个expression,它才能起作用。
    • 自版本0.11.0Flask-Restless'create_api() 方法支持include_methods 参数,您可以在其中指定模型上定义的方法列表,其返回值应包含在响应中.见here
    猜你喜欢
    • 2014-04-24
    • 2016-06-02
    • 1970-01-01
    • 2013-12-24
    • 2016-11-14
    • 2014-12-29
    • 2014-07-28
    • 2014-09-20
    • 2016-08-03
    相关资源
    最近更新 更多