4

これらの 2 つのモデルがあります (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 では、これは次のような「2 つのアンダースコア」を使用することで実現されます。

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 を使用することは単に不可能なのでしょうか? ありがとう!

4

1 に答える 1

1

あなたの最善の策は、おそらくポストプロセッサを使用することです:

https://flask-restless.readthedocs.org/en/latest/customizing.html?highlight=order#request-preprocessors-and-postprocessors

于 2014-10-08T15:06:54.500 に答える