4

私が持っているとしましょう:

class Like(db.Model):
    user = db.ReferenceProperty(User,collection_name='likes')
    photo = db.ReferenceProperty(Photo,collection_name='likes_received')
    created = db.DateTimeProperty(auto_now_add=True)

写真キーのリストのみを返す投影クエリを実行することはできますか?

photos = db.GqlQuery("SELECT photo FROM Like WHERE created < DATETIME(2013, 1, 1, 0, 0, 0)").fetch(10)

上記のコードは以下を生成します。

BadValueError: Unsupported data type (<class 'models.Photo'>)
4

2 に答える 2

1

Photo クラスがまだインポートされていないようです。

于 2012-05-12T14:46:51.757 に答える
1

すみません、私の最初の答えは間違っていました。プロジェクション クエリには実際の問題があります。ReferenceProperty は (まだ) サポートされていません。アルフレッドはこれを調査しています。1.6.6 プレリリース SDK が本日公開され、これは 1.6.5 SDK に既に存在していたため、1.6.6 で修正されるとは思えませんが、1.6.7 で修正される可能性があります。

回避策として、キーのリストである db.ListProperty(db.Key) を使用するか (キーを 1 つだけ格納します)、または値がキーの str() である StringProperty を使用できます。

于 2012-05-15T20:12:23.440 に答える