Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在django模板中显示字典列表?(无法分析余数)_Python_Django_Python 3.x_Django Templates_Django Views - Fatal编程技术网

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
returns
context必须是一个dict而不是list。
作为errorreturn呈现(请求,'app/index.html',{“articles”:articles})您处理了错误的对象。谢谢,这解决了我的问题。请更新您的答案,我将接受。