这可能是个愚蠢的问题,但这里的新手需要一些帮助
我需要将字典打印到模板
template_var = {}
settings = Article.objects.filter().values('title','content')
for some in settings:
pprint.pprint(some)
控制台日志的输出是
{'content': u'add blog ', 'title': u'blog here'}
{'content': u'fweferwgfwefw', 'title': u'few'}
{'content': u'fsvbfsvbsfvsdfv', 'title': u' fsfsbfsbvsfvb'}
这是我将some
传递给template_var['article']= some
的方式。在我的HTML中,我喜欢这个
{% for content in some %}
{{ content }}
{% endfor %}
但那不起作用。
答案 0 :(得分:2)
您正在settings
声明中重复for
:
for some in settings:
pprint.pprint(some)
但是,视图代码正在将some
而不是settings
传递给模板,并对其进行迭代。除此之外,代码将变量传递为article
,但它在模板中用作some
。
让它们保持一致:
查看强>
template_var['settings'] = settings
<强>模板强>
{% for some in settings %}
{{ some }}
{% endfor %}
答案 1 :(得分:0)
如果你想将dictonary打印到模板,你可以做
在viwes.py中
return render(request, "template.html", { 'settings' : settings})
并在template.html中
这是为了获得整个dictonary
{% for set1 in settings %}
{{set1}}
{% endfor %}
这是为了获得dictonary的每个元素
{% for set1 in settings %}
{{set1.content}}<br/>
{{set1.title}}
{% endfor %}