【问题标题】:Flask-Restless order_by related modelFlask-Restless order_by 相关模型
【发布时间】:2014-12-03 05:38:03
【问题描述】:

我有这两个模型(使用 Flask-SQLAlchemy 定义):

class BankAccount(db.Model):
    id            = db.Column(db.Integer, primary_key=True)
    customer_id   = db.Column(db.Integer, db.ForeignKey('customer.id'))
    created_at    = db.Column(db.DateTime)

class Customer(db.Model):
    id            = db.Column(db.Integer, primary_key=True)
    name          = db.Column(db.String(128), index=True)

使用以下查询参数为 BankAccount 使用 Flask-Restless API 端点没有问题:

http://mywebsite.com/api/bank_account?q={"order_by":[{"field":"created_at","direction":"asc"}]}

但是,我想按客户名称对这些结果(银行账户)进行排序——而 Customer 是一个相关模型,因此 BankAccount 模型中没有 customer_name 这样的字段。

有什么简单的方法可以让这个排序工作?在一些已知的 Python ORM 中,这可以通过使用“双下划线”来实现,例如:

http://mywebsite.com/api/bank_account?q={"order_by":[{"field":"customer__name","direction":"asc"}]}

我也试过了:

{"field":"Customer","direction":"asc"}
{"field":"customer","direction":"asc"}
{"field":"customer.name","direction":"asc"}

对于所有这些尝试,我得到以下回复:

{
  "message" : "Unable to construct query"
}

关于如何进行此查询的任何想法?或者这根本不可能使用 Flask-Restless?谢谢!

【问题讨论】:

    标签: python postgresql flask-sqlalchemy flask-restless


    【解决方案1】:

    【讨论】:

    • 是的,我想避免使用后处理器,但这似乎是迄今为止最好的解决方案。我会等着看是否有人想出更简单的方法,否则我会接受这个答案。谢谢! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 2015-07-29
    • 2013-10-16
    • 2015-03-08
    • 2023-03-13
    • 2018-06-18
    • 2015-05-24
    相关资源
    最近更新 更多