我有評論對象具有user_key屬性,並且我將Comment對象傳遞給了我的Flask模板,但是我想顯示User.username屬性旁邊的每條評論,當我在模板中時,我只有user_key。一旦我進入模板後,如何基於用戶密鑰訪問用戶對象?如何從Flask模板中的user_key獲取User對象
這裏是我的模型類的樣子:
class Base(ndb.Model, modelx.BaseX):
created = ndb.DateTimeProperty(auto_now_add=True)
modified = ndb.DateTimeProperty(auto_now=True)
version = ndb.IntegerProperty(default=TIMESTAMP)
_PROPERTIES = set([
'key',
'id',
'version',
'created',
'modified',
])
class Comment(Base):
user_key = ndb.KeyProperty(kind=User, required=True)
comment = ndb.StringProperty(required=True)
like_count = ndb.IntegerProperty(required=False, default=0)
class User(Base, modelx.UserX):
name = ndb.StringProperty(indexed=True, required=True)
username = ndb.StringProperty(indexed=True, required=True)
email = ndb.StringProperty(indexed=True, default='')
active = ndb.BooleanProperty(default=True)
admin = ndb.BooleanProperty(default=False)
federated_id = ndb.StringProperty(indexed=True, default='')
facebook_id = ndb.StringProperty(indexed=True, default='')
twitter_id = ndb.StringProperty(indexed=True, default='')
_PROPERTIES = Base._PROPERTIES.union(set([
'name',
'username',
'avatar_url',
]))
然後我渲染這樣的模板:
query = model.Comment.query()
comment_dbs = query.fetch()
return flask.render_template(
'filename.html',
html_class='classname',
title='Title here',
comment_dbs=comment_dbs
)
最後,在模板文件,這就是我d喜歡在用戶對象上訪問像我的用戶名和頭像屬性的內容:(此代碼僅在要放置User.username的位置輸出用戶密鑰。
# if comment_dbs
{% for c in comment_dbs %}
{{c.user_key}}{{c.comment}}<br>
{% endfor %}
# endif
我知道,在Python中,我可以做一個key.get()來返回我想要的對象,但有沒有辦法在模板中做到這一點?
是否需要遍歷Comment對象,然後查找基於每個鍵的User對象,然後將該User對象數組傳遞給模板?似乎有點凌亂,並有可能是一種更好的方式...
這正是我所需要的!感謝您的幫助! –