/django/contrib/syndication/feeds.py

https://bitbucket.org/taxilian/racecontrol5 · Python · 38 lines · 26 code · 6 blank · 6 comment · 7 complexity · dd431cb9f6d346037b333b96189c7932 MD5 · raw file

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