]>
<< Python Challenge(1) | main | Python Challenge(2) >>
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 ... %}タグが抜けていました。
(追記)解決しました。
http://www.panopticon.jp/mt/mt-tb.cgi/75
Google Code: django-audit-trail まだコードはありません Blog: Djangoで画像掲示板(みたいなもの)を作りました... [続きを読む]
コメントする