我有以下的模型,其中不同的文本標記,以文本的不同的集合,每個文本可以有幾個版本,但只有一個「活動」版:過濾
class Collection(db.Model):
name = db.StringProperty()
...
class Text(db.Model):
title = db.StringProperty(default="Untitled")
...
class Version(db.Model):
text = db.ReferenceProperty(Text, collection_name="versions")
content = db.TextProperty()
active = db.BooleanProperty(default=True)
...
class Tag(db.Model):
collection = db.ReferenceProperty(Collection, collection_name="c_tags")
text = db.ReferenceProperty(Text, collection_name="t_tags")
現在我喜歡一個集合來顯示所有的「活躍」的文本:
class ViewCollection(webapp.RequestHandler):
def(get):
collection = Collection.get(self.request.get("key"))
# grabs the collection to display
tags = collection.t_tags
# grabs all the tags linking a text and a collection
texts = [t.text for t in tags]
這會給我所有的文字列表,這樣我就可以輕鬆打印所有文字標題(t.title for t in texts
),但沒有任何聰明的辦法現在我可以抓取相應的「活動」版本的ea ch文本?
或者這種類型的過濾不同的模型類是不可能的?