web/lib/django/contrib/syndication/feeds.py
changeset 38 77b6da96e6f1
equal deleted inserted replaced
37:8d941af65caf 38:77b6da96e6f1
       
     1 from django.contrib.syndication import views
       
     2 from django.core.exceptions import ObjectDoesNotExist
       
     3 import warnings
       
     4 
       
     5 # This is part of the deprecated API
       
     6 from django.contrib.syndication.views import FeedDoesNotExist, add_domain
       
     7 
       
     8 class Feed(views.Feed):
       
     9     """Provided for backwards compatibility."""
       
    10     def __init__(self, slug, request):
       
    11         warnings.warn('The syndication feeds.Feed class is deprecated. Please '
       
    12                       'use the new class based view API.',
       
    13                       category=PendingDeprecationWarning)
       
    14 
       
    15         self.slug = slug
       
    16         self.request = request
       
    17         self.feed_url = getattr(self, 'feed_url', None) or request.path
       
    18         self.title_template = self.title_template or ('feeds/%s_title.html' % slug)
       
    19         self.description_template = self.description_template or ('feeds/%s_description.html' % slug)
       
    20 
       
    21     def get_object(self, bits):
       
    22         return None
       
    23 
       
    24     def get_feed(self, url=None):
       
    25         """
       
    26         Returns a feedgenerator.DefaultFeed object, fully populated, for
       
    27         this feed. Raises FeedDoesNotExist for invalid parameters.
       
    28         """
       
    29         if url:
       
    30             bits = url.split('/')
       
    31         else:
       
    32             bits = []
       
    33         try:
       
    34             obj = self.get_object(bits)
       
    35         except ObjectDoesNotExist:
       
    36             raise FeedDoesNotExist
       
    37         return super(Feed, self).get_feed(obj, self.request)
       
    38