【问题标题】:XML and Django problems (unicode related?)XML 和 Django 问题(unicode 相关?)
【发布时间】:2011-06-22 01:15:26
【问题描述】:

我制作了这个应用程序,它应该提供一个包含 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>

我怎样才能删除它?并确保它是普通文本?

【问题讨论】:

标签: python xml django unicode


【解决方案1】:

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

您想将输入的rsscontent 变量修改为如下所示:

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

而不是你当前的可能有:

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

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

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

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

【讨论】:

  • 谢谢保罗!我不能丢失 |safe,因为我会遇到另一个问题,但是 value.0 方法对我有用。我不明白为什么这是一个listobject,所以我用了那个方法,再次感谢!
  • 很高兴为您提供帮助!小心|safe,这是使您的网站不安全的好方法。
猜你喜欢
  • 2018-08-06
  • 2014-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-15
  • 1970-01-01
相关资源
最近更新 更多