2013-08-14 9 views
5

Sto scrivendo un lettore di feed RSS di base in Django. Ho un modulo in cui un utente invia un feed RSS e lo aggiungo alla sua lista di feed. Ma per qualche motivo, non riesco a estrarre le informazioni di base sul feed utilizzando il parser del feed.Django rss feedparser restituisce un feed senza "titolo"

quando ho eseguito il seguente codice:

def form_valid(self, form): 
    user = self.request.user 
    link = form.cleaned_data['link'] 
    feed = feedparser.parse(link).feed 
    title = feed.title 
    try: 
     feed_obj = Feed.objects.get(link=link) 
    except ObjectDoesNotExist: 
     feed_obj = Feed(link=link, title=title) 
     feed_obj.save() 
    user.get_profile().feeds.add(feed_obj) 
    return super(DashboardView, self).form_valid(form) 

Django mi butta un "oggetto non ha alcun attributo 'titolo'" eccezione sulla linea 5:

title = feed.title 

completi Dettagli di errore sono:

Traceback: 
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    115.       response = callback(request, *callback_args, **callback_kwargs) 
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view 
    25.     return view_func(request, *args, **kwargs) 
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/django/views/generic/base.py" in view 
    68.    return self.dispatch(request, *args, **kwargs) 
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch 
    86.   return handler(request, *args, **kwargs) 
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/django/views/generic/edit.py" in post 
    165.    return self.form_valid(form) 
File "/home/yaniv/nextfeed/profiles/views.py" in form_valid 
    48.   title = feed.title 
File "/home/yaniv/nextfeed/venv/local/lib/python2.7/site-packages/feedparser.py" in __getattr__ 
    416.    raise AttributeError, "object has no attribute '%s'" % key 

Exception Type: AttributeError at /dashboard 
Exception Value: object has no attribute 'title' 

Cosa sto sbagliando?

MODIFICA: ho tracciato il programma con pdb. Proprio prima della linea problematico, ho ottenuto:

(Pdb) link 
u'http://feedparser.org/docs/examples/rss20.xml' 
(Pdb) feed 
{'xhtml_script': {'type': u'text/javascript', 'language': u'javascript'}, 'summary': u''} 
+0

Cosa restituisce 'feedparser.parse (collegamento) .feed'? Sei sicuro che sia un oggetto modello o qualsiasi oggetto con un titolo attr? –

+1

Modificato il post per mostrare il ritorno del parser. – YanivLib

risposta

0

E 'stato un po' che ho usato feedparser, ma IIRC, il parser restituisce un dizionario, in questo modo:

foo = feedparser.parse(link) 
feed = foo['feed'] 
title = feed['title'] 

ti sembra di avere ottenuto un tornare indietro da foo.feed, ma non è quello che vuoi.

+0

Anche questo sembra non funzionare. – YanivLib