0
我想查詢具有計算屬性的ndb模型,但它返回一個空列表。 This answer表明我應該能夠查詢計算出的屬性,the docs也是如此。我究竟做錯了什麼?帶計算屬性的NDB查詢返回一個空白列表
from django.template import defaultfilters
class Video(models.SfxModel):
title = ndb.StringProperty()
slug = ndb.ComputedProperty(
lambda self: str(defaultfilters.slugify(self.title)))
在交互式控制檯
from app.lib.videos import Video
slug = Video.query().get().slug
print slug
# => "some-dasherized-string"
print Video.query(Video.slug == slug).fetch()
# => []
我有點搞不清楚爲什麼實體組是非常重要的。爲什麼我想要將視頻聲明爲視頻實體的父項?如果我做了,哪個實體會是父母?在你的示例代碼中,是否是佔位符「xxx」?還是它意味着什麼? 感謝您的快速響應。另外,我上面顯示的代碼在'dev_appserver'中。這會改變什麼嗎? – mehulkar 2013-03-08 22:30:23
這就是數據存儲如何與實體組一起工作以及最終的一致性。父母只是一個生成的密鑰。應該看看我指出的文檔。如果你保存一個實體並在它不保證被一個非祖先查詢返回後立即進行查詢。它的SDK是爲了反映生產環境,所以你也應該在生產中期待這一點。但它可能在1秒後...看看這裏https://developers.google.com/appengine/docs/python/datastore/structuring_for_strong_consistency – aschmid00 2013-03-09 15:04:29
但這並不意味着你需要使用祖先。如果您在創建後不需要查詢該特定實體,那麼您將很好地處理最終的一致性。 – aschmid00 2013-03-09 15:05:47