Python 如何在django模板中显示字典列表?(无法分析余数)
我有一个创建列表的函数:Python 如何在django模板中显示字典列表?(无法分析余数),python,django,python-3.x,django-templates,django-views,Python,Django,Python 3.x,Django Templates,Django Views,我有一个创建列表的函数: import feedparser import ssl def rss(self): if hasattr(ssl, '_create_unverified_context'): ssl._create_default_https_context = ssl._create_unverified_context rss = 'https://news.google.com/news?q=fashion&output=rss'
import feedparser
import ssl
def rss(self):
if hasattr(ssl, '_create_unverified_context'):
ssl._create_default_https_context = ssl._create_unverified_context
rss = 'https://news.google.com/news?q=fashion&output=rss'
feed = feedparser.parse(rss)
articles = []
for entry in feed.entries:
articles.append({
"summary" : str(entry.summary),
"link" : str(entry.link),
"title" : str(entry.title),
})
return articles
在返回文章时,我将尝试在视图中显示这一点
My views.py代码是:
def results(request):
rss_feed = RSS()
articles = rss_feed.rss()
return render(request, 'app/index.html', articles)
然后我的模板代码是:
<ul>
{% for article in articles %}
<li>{{ article['title'] }}</li>
{% empty %}
<li>Sorry, no athletes in this list.</li>
{% endfor %}
</ul>
{文章%中的文章为%s}
- {{文章['title']}
{%empty%}
- 抱歉,此列表中没有运动员
{%endfor%}
但我一直收到这样一个错误:
位于/app/results的TemplateSyntaxError无法分析其余部分:
“文章['title']”中的“['title']”
我创建了一个单独的脚本,只需打印到控制台,它就可以毫无问题地打印。但在Django没有出现
我不熟悉Python和Django。不知道我错过了什么
更新:
使用
{{article.title}}
返回一个错误上下文必须是dict而不是list。
您将错误的上下文传递给了return函数,因为您直接在列表中传递以进行渲染。您必须以上下文词典的成员身份传递文章列表,如下所示:
return render(request, 'app/index.html', {"articles": articles})
在此之后,您可以将文章标题命名为
{{ article.title }}
在您的模板中。您错过了阅读实际文档的机会:尽管不清楚您为什么要将文章放入dicts中。为什么不将文章对象本身发送到模板?
article.title
returnscontext必须是一个dict而不是list。
作为errorreturn呈现(请求,'app/index.html',{“articles”:articles})您处理了错误的对象。谢谢,这解决了我的问题。请更新您的答案,我将接受。