2013-09-28 6 views
0

Я довольно новичок в Django и Python. Я пытаюсь создать небольшой RSS-ридер с помощью feedparser. Я получаю эту ошибку, и я не могу найти какие-либо решения в любом местеbozo_exception в Django/feedparser

{'feed': {}, 'bozo': 1, 'bozo_exception': TypeError ("'Feed' не имеет буфера интерфейс»,), 'записи': []}

Здесь находятся файлы, которые участвуют (упрощенная версия для ilustrate проблемы)

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

Он отлично работает, но когда я p Убрать его из БД, это не сработает.

Я пошел по этому http://pythonhosted.org/feedparser/character-encoding.html и это feedparser fails during script run, but can't reproduce in interactive python console

, но я не могу понять это. Может ли кто-нибудь помочь?

благодаря sikor

ответ

1

Вы должны предоставить source.url не источник в feedparser

+0

Aha! Это сработало, но я все еще слишком новичок в этом, чтобы полностью понять, почему :) – sikor

+0

Большое спасибо за этот совет. Не могли бы вы помочь мне и в следующем шаге? Теперь я хотел бы перебирать множество каналов из моделей/БД и каждый из них отображался в шаблоне html. Хотя я понимаю, что мне нужно повторить мысль x.feed.entries в html-шаблоне, я предполагаю, что итерация через каждый источник rss должна произойти в функции просмотра правильно? – sikor

+0

На самом деле я добавил пример кода к этому следующему вопросу здесь http://stackoverflow.com/questions/19078710/queryset-object-has-no-attribute-url-when-using-feedparser-in-django – sikor

Смежные вопросы