2011-06-22 8 views
0

xmlドキュメントに5個のアイテムを付けることになっているこのアプリケーションを作った。私の見解では、ファイルrss.xmlにこれらの5つの項目を辞書「rsscontent」を送信します。XMLとDjangoの問題(ユニコード関連?)

#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> 

それは出力を生成し、しかし、ページが変わっています。

<title>[u'Apple iPod touch 8 GB (4th Generation) NEWEST MODEL']</title> 
<description>[u'Apple iPod touch 8 GB (4th Generation) NEWEST MODEL']</description> 

どのように私はこれを削除することができます。出力は次のようにそれで[uと「」]は?とそれが通常のテキストであることを確認しますか?

+0

https://docs.djangoproject.com/ja/1.3/ref/contrib/syndication/ – diegueus9

答えて

2

|safeフィルタを使用しないでください。さらに、オブジェクトの値がリストであるように見えるので、アイテム自体を印刷するのではなく、それらの最初の要素を取得する必要があります。

あなたはこのように見えるためにあなたの入力rsscontent変数変更したい:

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

ではなく、おそらく持っているあなたの現在:

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

あなたがそれを行うことができない場合は、あなたがする必要性をテンプレートの値の出力を次のように変更してください。

彼はリスト自体を印刷するのではなく、リストの最初の項目を選択します。

+0

ありがとうPaul!私は別の問題が発生するので、私は安全を失うことはできませんが、value.0メソッドが私のために働いていました。なぜこれがリストオブジェクトなのかわからなかったので、私はそのメソッドを使用しました、もう一度ありがとう! – Javaaaa

+0

喜んで助けてください! '| safe'には非常に注意してください。あなたのサイトを安全にするための非常に良い方法です。 –