私はPythonの設定ファイルで定義されている次の辞書を持っている:Jina2テンプレートの特定の辞書要素にアクセスするにはどうすればよいですか?
AUTHORS = {
u'MyName Here': {
u'blurb': """ blurb about author""",
u'friendly_name': "Friendly Name",
u'url': 'http://example.com'
}
}
私は、次のJinja2のテンプレートがあります。
{% macro article_author(article) %}
{{ article.author }}
{{ AUTHORS }}
{% if article.author %}
<a itemprop="url" href="{{ AUTHORS[article.author]['url'] }}" rel="author"><span itemprop="name">{{ AUTHORS[article.author]['friendly_name'] }}</span></a> -
{{ AUTHORS[article.author]['blurb'] }}
{% endif %}
{% endmacro %}
をそして、私はこれを呼び出し経由:
<div itemprop="author creator" itemscope itemtype="http://schema.org/Person">
{% from '_includes/article_author.html' import article_author with context %}
{{ article_author(article) }}
</div>
Pelicanテンプレートを生成すると、次のエラーが表示されます。
CRITICAL: UndefinedError: dict object has no element <Author u'MyName Here'>
私は私のテンプレートから{% if article.author %}
ブロックを削除すると、ページが正しく表示さ{{ AUTHORS }}
変数を適切に生成します。これは明らかにMyName Here
鍵を持っている:
<div itemprop="author creator" itemscope itemtype="http://schema.org/Person">
MyName Here
{u'MyName Here': {u'url': u'http://example.com', u'friendly_name': u'Friendly Name', u'blurb': u' blurb about author'}}
</div>
私は私のテンプレートで正しくMyName Here
要素にアクセスするにはどうすればよいですか?
'article.author'は実際にstring/unicodeタイプですか? – Feodoran