XML和Django问题(unicode相关?)

时间:2011-06-22 01:15:26

标签: python xml django unicode

我制作了这个应该给出带有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>

如何删除此内容?并确保它是普通文本?

1 个答案:

答案 0 :(得分:2)

请勿使用|safe过滤器。此外,看起来您的对象值是列表,因此您需要获取其中的第一个元素,而不是仅仅打印项目本身。

您想要修改输入rsscontent变量,如下所示:

{'item1':'itemtext',
 'item2':'item2text',
  etc.
}

而不是你当前可能有的:

{'item1':['itemtext',],
'item2':['item2text',],
 etc.
}

如果您不能这样做,则需要修改模板值输出,如下所示:

    <title>{{ value.0 }}</title>

这将获取列表中的第一项,而不是打印列表本身。