Проблемы XML и Django (связанные с юникодом?) - PullRequest
0 голосов
/ 22 июня 2011

Я сделал это приложение, которое должно выдавать документ XML с 5 элементами.Мое представление отправляет словарь '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 Ответ

2 голосов
/ 22 июня 2011

Не используйте фильтр |safe. Кроме того, похоже, что значения вашего объекта являются списками, поэтому вам нужно получить первый элемент из них, а не просто печатать сами элементы.

Вы хотите изменить введенную rsscontent переменную так, чтобы она выглядела следующим образом:

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

вместо вашего текущего, который, вероятно, имеет:

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

Если вы не можете этого сделать, вам нужно изменить выходные значения вашего шаблона так, чтобы они выглядели так:

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

Получает первый элемент в списке, а не печатает сам список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...