Python 在GAE上访问jinja2模板中的重复属性

Python 在GAE上访问jinja2模板中的重复属性,python,google-app-engine,Python,Google App Engine,我对python中的GAE还相当陌生,还没有完全能够从文档或谷歌搜索中找到如何做到这一点: 我试图访问jinja模板中重复字符串属性中的第一个值 我使用的是webapp2_extras.appengine.auth.models.User中的Google用户类,创建方式如下: user_data = self.user_model.create_user(user_name, unique_properties, email_address=email, name

我对python中的GAE还相当陌生,还没有完全能够从文档或谷歌搜索中找到如何做到这一点:

我试图访问jinja模板中重复字符串属性中的第一个值

我使用的是webapp2_extras.appengine.auth.models.User中的Google用户类,创建方式如下:

user_data = self.user_model.create_user(user_name,
        unique_properties,
        email_address=email, name=name, password_raw=password,
        last_name=last_name, verified=False)
从源代码中可以看出,在google实现中,用户名似乎存储在auth_id[0]中

在模板中,我想在帖子中显示用户名,它具有用户密钥属性:

class Post(ndb.Model):

    content = ndb.StringProperty()
    author = ndb.KeyProperty(kind=User)
我正在尝试在模板中执行此操作:

{% for post in posts %}
<div class='post'>
{{ post.content }} <br />
{{ post.author.auth_ids[0] }}
</div>
{% endfor %}
它适用于内容,但不适用于用户名,我尝试过几种不同的选择,任何指针都非常有用

啊哈

我发现您可以在模板中添加“get”以访问属性:

我在模型中添加了一个username属性:

@property
def username(self):
    return self.auth_ids[0]
然后通过“获取”访问它:

{{ post.author.get.username }}

当你知道怎么做的时候就这么简单了

这似乎与重复属性无关。内容和作者都不会重复,但作者是一个键,它实际上是对不同模型的引用。你说得对!我不知道如何更改标题…: