0
我使用的是Google App Engine和Python,並且我正在構建一項功能,允許用戶按照投票數量或creation_date排列他們的照片。在DateTimeProperty上找不到匹配索引Google App Engine
的模型應該像這樣:
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
谷歌應用程序引擎控制檯告訴我,所有索引服務現在。
UPDATE
我在index.yaml中實際訂單寫道通過表決然後通過CREATION_DATE。正如Dragonx所建議的那樣。我將它們分開,並按預期工作。
感謝
它完美。謝謝@dragonx –
請記住,當你放入()時,這也會使寫入次數增加一倍,因此稍後不要抱怨你的應用程序花費太多了:) – alex