5

次のモデルがあるとします。

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 オブジェクトが var に格納されているとしましょうfoo

によって参照される Station オブジェクトへの参照を持つすべての Schedule オブジェクトを返す GQL クエリを組み立てるにはどうすればよいfooですか?

これは、そのようなクエリを作成するための私の最善の試みです(間違っていますが):

myQuery = "SELECT * FROM Schedule where station = " + str(foo.key())

再びStationオブジェクトfooです

4

2 に答える 2

10

文字列置換を使用してユーザー データを GQL 文字列に挿入しないでください。GQL はパラメーター置換をサポートしているため、次のようにすることができます。

db.GqlQuery("SELECT * FROM Schedule WHERE station = $1", foo.key())

または、Query インターフェースを使用して、次のようにします。

Schedule.all().filter("station =", foo.key())
于 2009-05-12T21:17:11.380 に答える
7

さらに簡単なことは、「collection_name」フィールドを ReferenceProperty に追加してモデル定義を変更することです。

駅 = db.ReferenceProperty(駅、必須 = True、collection_name="スケジュール")

次に、次のことができます。

foo.schedules

すべてのステーションのスケジュールを取得したいときはいつでも。

于 2009-11-24T05:35:40.400 に答える