0

私はDjangoとPythonにかなり慣れていません。feedparser を使用して小さな RSS リーダーを構築しようとしています。このエラーが発生し、どこにも解決策が見つからないようです

{'feed': {}, 'bozo': 1, 'bozo_exception': TypeError("'Feed' にはバッファ インターフェイスがありません",), 'entries': []}

関連するファイルは次のとおりです(問題を説明するための簡略化されたバージョン)

## models
class Feed(models.Model):
    name = models.CharField(max_length=100)
    url = models.CharField(max_length=100)
    category = models.ForeignKey(Category)
    user = models.ManyToManyField(User)

    def __unicode__(self):
        return self.url

## views
def feed5(request):
    source = Feed.objects.get(id=1)
    rss = feedparser.parse(source)
    context = {
    'rss': rss,
    }
    return render(request, 'feedreader/feed5.html', context)


## feed5.html
{% block content %}

{{ rss }}

<p><a href ="{{ rss.feed.link }}">{{ rss.feed.title }}</a></p>

<ul>
{% for r in rss.entries|slice:":10" %}
<li> <a class="title" href="{{ r.link }}">{{ r.title }}</a> <br />{{ r.description }}</li>
{% endfor %}
</ul>

{% endblock %}

ここに RSS フィードを手動で入力しようとすると

## views
def feed5(request):
    source = Feed.objects.get(id=1)
    **rss = feedparser.parse('http://rss.gazeta.pl/pub/rss/wiadomosci.htm')**
    context = {
    'rss': rss,
    }
    return render(request, 'feedreader/feed5.html', context)

正常に動作しますが、DB からプルすると動作しません。

この http://pythonhosted.org/feedparser/character-encoding.html を 調べたところ、このフィードパーサーはスクリプトの実行中に失敗しましたが、インタラクティブな python コンソールで再現できません

しかし、私はそれを理解することはできません。誰かが助けることができますか?

ありがとう

4

1 に答える 1