ReferenceProperty に条件を持つ GQL クエリ (Google App Engine 用) を構築する
-
21-08-2019 - |
質問
次のモデルがあるとします。
class Schedule(db.Model):
tripCode = db.StringProperty(required=True)
station = db.ReferenceProperty(Station, required=True)
arrivalTime = db.TimeProperty(required=True)
departureTime = db.TimeProperty(required=True)
そして、変数に Station オブジェクトが保存されているとします。 foo
.
によって参照される Station オブジェクトへの参照を含むすべての Schedule オブジェクトを返す GQL クエリを組み立てるにはどうすればよいですか? foo
?
これが私のベストです(とはいえ、 正しくない) このようなクエリを作成してみます。
myQuery = "SELECT * FROM Schedule where station = " + str(foo.key())
もう一度 foo
です 駅 物体
解決
文字列置換を使用してユーザー データを GQL 文字列に挿入しないでください。GQL はパラメータ置換をサポートしているため、これを行うことができます。
db.GqlQuery("SELECT * FROM Schedule WHERE station = $1", foo.key())
または、クエリ インターフェイスを使用して、次のようにします。
Schedule.all().filter("station =", foo.key())
他のヒント
さらに簡単な方法は、「collection_name」フィールドを ReferenceProperty に追加してモデル定義を変更することです。
station = db.ReferenceProperty(Station、required=True、collection_name="スケジュール")
次に、次のようにすることができます。
foo.スケジュール
すべての駅のスケジュールを取得したいときはいつでも。
所属していません StackOverflow