Fixed #1473 -- Added support for categories back into syndication feeds
(was accidently removed in r1994). Thanks, k.shaposhnikov@gmail.com git-svn-id: http://code.djangoproject.com/svn/django/trunk@3143 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
c0ea3284d7
commit
a93b1f7ac3
|
@ -73,6 +73,7 @@ class Feed(object):
|
||||||
author_name = self.__get_dynamic_attr('author_name', obj),
|
author_name = self.__get_dynamic_attr('author_name', obj),
|
||||||
author_link = self.__get_dynamic_attr('author_link', obj),
|
author_link = self.__get_dynamic_attr('author_link', obj),
|
||||||
author_email = self.__get_dynamic_attr('author_email', obj),
|
author_email = self.__get_dynamic_attr('author_email', obj),
|
||||||
|
categories = self.__get_dynamic_attr('categories', obj),
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -110,5 +111,6 @@ class Feed(object):
|
||||||
author_name = author_name,
|
author_name = author_name,
|
||||||
author_email = author_email,
|
author_email = author_email,
|
||||||
author_link = author_link,
|
author_link = author_link,
|
||||||
|
categories = self.__get_dynamic_attr('item_categories', item),
|
||||||
)
|
)
|
||||||
return feed
|
return feed
|
||||||
|
|
|
@ -126,6 +126,8 @@ class RssFeed(SyndicationFeed):
|
||||||
handler.addQuickElement(u"description", self.feed['description'])
|
handler.addQuickElement(u"description", self.feed['description'])
|
||||||
if self.feed['language'] is not None:
|
if self.feed['language'] is not None:
|
||||||
handler.addQuickElement(u"language", self.feed['language'])
|
handler.addQuickElement(u"language", self.feed['language'])
|
||||||
|
for cat in self.feed['categories']:
|
||||||
|
handler.addQuickElement(u"category", cat)
|
||||||
self.write_items(handler)
|
self.write_items(handler)
|
||||||
self.endChannelElement(handler)
|
self.endChannelElement(handler)
|
||||||
handler.endElement(u"rss")
|
handler.endElement(u"rss")
|
||||||
|
|
|
@ -439,6 +439,23 @@ This example illustrates all possible attributes and methods for a ``Feed`` clas
|
||||||
|
|
||||||
author_link = 'http://www.example.com/' # Hard-coded author URL.
|
author_link = 'http://www.example.com/' # Hard-coded author URL.
|
||||||
|
|
||||||
|
# CATEGORIES -- One of the following three is optional. The framework
|
||||||
|
# looks for them in this order. In each case, the method/attribute
|
||||||
|
# should return an iterable object that returns strings.
|
||||||
|
|
||||||
|
def categories(self, obj):
|
||||||
|
"""
|
||||||
|
Takes the object returned by get_object() and returns the feed's
|
||||||
|
categories as iterable over strings.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def categories(self):
|
||||||
|
"""
|
||||||
|
Returns the feed's categories as iterable over strings.
|
||||||
|
"""
|
||||||
|
|
||||||
|
categories = ("python", "django") # Hard-coded list of categories.
|
||||||
|
|
||||||
# ITEMS -- One of the following three is required. The framework looks
|
# ITEMS -- One of the following three is required. The framework looks
|
||||||
# for them in this order.
|
# for them in this order.
|
||||||
|
|
||||||
|
@ -602,6 +619,25 @@ This example illustrates all possible attributes and methods for a ``Feed`` clas
|
||||||
|
|
||||||
item_pubdate = datetime.datetime(2005, 5, 3) # Hard-coded pubdate.
|
item_pubdate = datetime.datetime(2005, 5, 3) # Hard-coded pubdate.
|
||||||
|
|
||||||
|
# ITEM CATEGORIES -- It's optional to use one of these three. This is
|
||||||
|
# a hook that specifies how to get the list of categories for a given
|
||||||
|
# item. In each case, the method/attribute should return an iterable
|
||||||
|
# object that returns strings.
|
||||||
|
|
||||||
|
def item_categories(self, item):
|
||||||
|
"""
|
||||||
|
Takes an item, as returned by items(), and returns the item's
|
||||||
|
categories.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def item_categories(self):
|
||||||
|
"""
|
||||||
|
Returns the categories for every item in the feed.
|
||||||
|
"""
|
||||||
|
|
||||||
|
item_categories = ("python", "django") # Hard-coded categories.
|
||||||
|
|
||||||
|
|
||||||
The low-level framework
|
The low-level framework
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue