在DateTimeProperty Google App Engine上找不到匹配的索引

时间:2012-06-08 05:13:40

标签: python google-app-engine indexing

我正在使用Google App Engine,Python和我正在构建一项功能,允许用户按照投票数或creation_date订购他们的照片。

模型应如下所示:

class MyUser(db.Model):
    user = db.UserProperty(required=True)
    name = db.StringProperty()
class UserImage(db.Model):
    user = db.ReferenceProperty(MyUser,collection_name='user_images')

    image_key = blobstore.BlobReferenceProperty(required=False)
    creation_date = db.DateTimeProperty(required=True,auto_now_add=True)
    votes = db.IntegerProperty(required=False)

我想要运行两个查询:

my_user = db.get('my_user_key')
1) image_keys = my_user.user_images.order('-votes').fetch(100,keys_only=True)
2) image_keys = my_user.user_images.order('-creation_date').fetch(100,keys_only=True)

第一个查询运行得很好但是第二个查询给了我 NeedIndexError:找不到匹配的索引即使我将这些属性添加到 index.yaml

这是我的index.yaml

indexes:
- kind: UserImage
  properties:
  - name: user
  - name: votes
    direction: desc
  - name: creation_date
    direction: desc    

Google App Engine信息中心告诉我所有索引正在服务


更新

我在index.yaml中写的内容实际上是Order by votes然后是creation_date。正如dragonx所说。我将它们分开,它按预期工作。


由于

1 个答案:

答案 0 :(得分:1)

尝试单独的索引

indexes:
- kind: UserImage
  properties:
  - name: user
  - name: votes
    direction: desc

- kind: UserImage
  properties:
  - name: user
  - name: creation_date
    direction: desc