2013-08-14 14 views
5

Django'da temel bir RSS okuyucu okuyorum. Bir kullanıcının rss feed'i gönderdiği bir form var ve onu feeds listesine ekliyorum. Ancak, bazı nedenlerden dolayı, feed ile ilgili temel bilgileri feed çözümleyici kullanarak ayıklayamıyorum.Django rss feedparser, "başlık" içermeyen bir besleme döndürür

i aşağıdaki kodu çalıştırdığınızda:

title = feed.title 

Tam hata ayrıntıları şunlardır:

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 bir 5. satırdaki istisna "nesne 'başlığı' hayır özelliği vardır" beni atar

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' 

Neyi yanlış yapıyorum?

DÜZENLEME: Programı pdb ile izledim. Ben feedparser kullanılan beri

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

Feedparser.parse (link) .feed' öğesini döndürme nedir? Bir Model Nesnesi veya bir başlığa sahip herhangi bir Nesne olduğuna emin misiniz? –

+1

Ayrıştırıcının döndürdüğü waht'ı göstermek için gönderiyi düzenleyin. – YanivLib

cevap

0

Bir süre oldu, ama IIRC, ayrıştırıcı gibi pek, bir sözlük döndürür:: Sağ sorunlu satırdan önce elimde olan

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

Bir aldık gibi görünüyor foo.feed'den geri nesne, ama istediğin bu değil.

+0

Bu da işe yaramıyor. – YanivLib

İlgili konular