我制作了这个应该给出带有5个项目的xml文档的应用程序。我的视图将带有这五个项目的字典'rsscontent'发送到文件rss.xml:
#views.py
return render_to_response("rss.xml", {"rsscontent":rsscontent})
然后rss.xml文件如下所示:
#rss.xml
<?xml version="1.0" encoding="UTF-8"?>
<rss version="0.92">
<channel>
{% for key, value in rsscontent.items %}<item>
<title>{{value|safe}}</title>
<description>{{value|safe}}</description>
<link>{{key|safe}}</link>
</item>
{% endfor %}
</channel>
</rss>
它生成一个输出,但页面表现得很奇怪。输出中有[u''],如下所示:
<title>[u'Apple iPod touch 8 GB (4th Generation) NEWEST MODEL']</title>
<description>[u'Apple iPod touch 8 GB (4th Generation) NEWEST MODEL']</description>
如何删除此内容?并确保它是普通文本?
答案 0 :(得分:2)
请勿使用|safe
过滤器。此外,看起来您的对象值是列表,因此您需要获取其中的第一个元素,而不是仅仅打印项目本身。
您想要修改输入rsscontent
变量,如下所示:
{'item1':'itemtext',
'item2':'item2text',
etc.
}
而不是你当前可能有的:
{'item1':['itemtext',],
'item2':['item2text',],
etc.
}
如果您不能这样做,则需要修改模板值输出,如下所示:
<title>{{ value.0 }}</title>
这将获取列表中的第一项,而不是打印列表本身。