|
29
|
1 |
from django.contrib.syndication import views |
|
|
2 |
from django.core.exceptions import ObjectDoesNotExist |
|
|
3 |
import warnings |
|
0
|
4 |
|
|
29
|
5 |
# This is part of the deprecated API |
|
|
6 |
from django.contrib.syndication.views import FeedDoesNotExist, add_domain |
|
0
|
7 |
|
|
29
|
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) |
|
0
|
14 |
|
|
|
15 |
self.slug = slug |
|
|
16 |
self.request = request |
|
29
|
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) |
|
0
|
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 |
|
29
|
37 |
return super(Feed, self).get_feed(obj, self.request) |
|
0
|
38 |
|