Index: django/contrib/syndication/feeds.py
===================================================================
--- django/contrib/syndication/feeds.py	(revision 5427)
+++ django/contrib/syndication/feeds.py	(working copy)
@@ -85,11 +85,11 @@
         try:
             title_tmp = loader.get_template(self.title_template_name)
         except TemplateDoesNotExist:
-            title_tmp = Template('{{ obj }}')
+            title_tmp = self.__get_dynamic_attr('item_title', obj, Template('{{ obj }}'))
         try:
             description_tmp = loader.get_template(self.description_template_name)
         except TemplateDoesNotExist:
-            description_tmp = Template('{{ obj }}')
+            description_tmp = self.__get_dynamic_attr('item_description', obj, Template('{{ obj }}')))
 
         for item in self.__get_dynamic_attr('items', obj):
             link = add_domain(current_site.domain, self.__get_dynamic_attr('item_link', item))
Index: docs/syndication_feeds.txt
===================================================================
--- docs/syndication_feeds.txt	(revision 5427)
+++ docs/syndication_feeds.txt	(working copy)
@@ -93,6 +93,7 @@
 latest five news items::
 
     from django.contrib.syndication.feeds import Feed
+    from django.template import Template
     from chicagocrime.models import NewsItem
 
     class LatestEntries(Feed):
@@ -103,6 +104,9 @@
         def items(self):
             return NewsItem.objects.order_by('-pub_date')[:5]
 
+        def item_description(self):
+            return Template('{{ obj.body }}')
+
 Note:
 
     * The class subclasses ``django.contrib.syndication.feeds.Feed``.
@@ -114,6 +118,9 @@
       `object-relational mapper`_, ``items()`` doesn't have to return model
       instances. Although you get a few bits of functionality "for free" by
       using Django models, ``items()`` can return any type of object you want.
+    * ``item_description(self)`` is method that returns a ``Template`` object.
+      This method of defining a ``Template`` can be used if you prefer this to
+      creating template files located on the file system.
     * If you're creating an Atom feed, rather than an RSS feed, set the
       ``subtitle`` attribute instead of the ``description`` attribute. See
       `Publishing Atom and RSS feeds in tandem`_, later, for an example.
@@ -123,11 +130,13 @@
 put into those elements.
 
     * To specify the contents of ``<title>`` and ``<description>``, create
-      `Django templates`_ called ``feeds/latest_title.html`` and
-      ``feeds/latest_description.html``, where ``latest`` is the ``slug``
-      specified in the URLconf for the given feed. Note the ``.html`` extension
-      is required. The RSS system renders that template for each item, passing
-      it two template context variables:
+      `Django templates`_.  This can be done by either creating template files
+      called ``feeds/latest_title.html`` and ``feeds/latest_description.html``,
+      where ``latest`` is the ``slug`` specified in the URLconf for the given
+      feed, or by defining the properties ``item_title`` and ``item_description``
+      in your subclass.  Note the ``.html`` extension is required when using
+      template files. The RSS system renders that template for each item,
+      passing it two template context variables:
 
           * ``{{ obj }}`` -- The current object (one of whichever objects you
             returned in ``items()``).
@@ -540,6 +549,16 @@
             django.core.exceptions.ObjectDoesNotExist on error.
             """
 
+        # ITEM TITLE -- If the template defined in title_template or the default
+        # template file 'feeds/SLUG_title.html' does not exist, the framework
+        # looks for this method.  If this method is not defined,
+        # Template('{{ obj }}') is used by default.
+
+        def item_title(self):
+            """
+            Returns a Template object defining how to render the title.
+            """
+
         # ITEM LINK -- One of these three is required. The framework looks for
         # them in this order.
 
@@ -556,6 +575,16 @@
             Returns the URL for every item in the feed.
             """
 
+        # ITEM DESCRIPTION -- If the template defined in description_template
+        # or the default template file 'feeds/SLUG_description.html' does not
+        # exist, the framework looks for this method.  If this method is not
+        # defined, Template('{{ obj }}') is used by default.
+
+        def item_description(self):
+            """
+            Returns a Template object defining how to render the description.
+            """
+
         # ITEM AUTHOR NAME --One of the following three is optional. The
         # framework looks for them in this order.
 
