0
私はappengineでブログをやっています。カテゴリごとの投稿数を取得するためのクエリを作成する必要があります。だから、私はappengineのReferenceプロパティでフィルターが必要です。私の実際のコードを見てください。Appnengineの参照プロパティでフィルタ
それらは私のモデルです:
class Comment(db.Model) :
user = db.ReferenceProperty(User)
post = db.ReferenceProperty(Blog)
subject = db.StringProperty(required = True)
content = db.TextProperty(required = True)
date = db.DateProperty(auto_now_add = True)
last_modified = db.DateProperty()
status = db.BooleanProperty(default = True)
class Category(db.Model):
name = db.StringProperty()
date = db.DateProperty(auto_now_add=True)
class Blog(db.Model) :
subject = db.StringProperty(required = True)
content = db.TextProperty(required = True)
date = db.DateProperty(auto_now_add = True)
category = db.ReferenceProperty(Category)
user = db.ReferenceProperty(User)
last_modified = db.DateProperty(auto_now = True)
status = db.BooleanProperty()
likes = db.IntegerProperty(default = 0)
users_liked = db.ListProperty(db.Key, default = [])
dislikes = db.IntegerProperty(default = 0)
users_disliked = db.ListProperty(db.Key, default = [])
そして、これは私のクエリです:
def numcomments_all_category() :
dic = {}
category = get_category()
for cat in category :
dic[cat.key().id()] = Comment.all().filter("post.category =", cat.key()).ancestor(ancestor_key).count()
return dic
しかし、それは、フィルタ( "post.category ="、cat.key())ではないようですこれを行う正しい方法。
サイドノート:DBクライアント・ライブラリが取って代わられ、それは非常に代わりNDBクライアントライブラリを使用することをお勧めします: https://cloud.google.com/appengine/docs/python/datastore/api-overview –