]> Panopticon :: Django :: DjangoでRSSリーダーを作る(3.5)

<< Python Challenge(1) | main | Python Challenge(2) >>

DjangoでRSSリーダーを作る(3.5)

feedから記事内容が取得できない原因が判明しました。

テンプレートの

{% load rss_get %}
<html>
<head>
<title>Admin's RSS Reader</title>
</head>
<body>
{% for site in object_list %}
   <h1>{{ site.title }}</h1>
   <p>{{ site.rss }}</p>
   {% rss_get site.rss as entries %}
   {% for entry in entries %}
      <h2>{{ entry.title }}</h2>
   {% endfor %}
{% endfor %}
</body>
</html>

のカスタムタグrss_get部分で、僕はてっきりsite.rssが評価され、URIに変換された後にrss_getが呼びだされるものと思っていた。がどうやら違ったようで、"site.rss"という文字列がそのままタグの引数として渡されている。当然フィードは見付からず、feedparserはNot foundを返す。インタープリタとDjangoで返ってくるものが違うのにはそういう理由があったわけ。わかってみれば納得です。

しかしなぜrss_getの引数site.rssが評価されないのか?その直前にある{{ site.rss }}ではちゃんとデータベースから拾ってきたURIが表示されているのに。組み込みタグで引数をとれるもの(ifとか)の実装をみても、別に内部で変なことをやっているわけではない、普通に処理しているだけだから、この短いテンプレートのどこかになんかまずい点があるようだ。

怪しいのはここかController部分だと思うんだけど…連休中には解決したい。

(追記)寝る前に考えていたらforタグ内でパースしている部分が怪しい気がしてきた。

(追記)template冒頭の{% load ... %}タグが抜けていました。

(追記)解決しました。

カテゴリ

Trackback URI

http://www.panopticon.jp/mt/mt-tb.cgi/75

Trackbacks(1)

Google Code: django-audit-trail まだコードはありません Blog: Djangoで画像掲示板(みたいなもの)を作りました... [続きを読む]

コメントする