'Returns a feedgenerator.DefaultFeed object, fully populated, for
this feed. Raises FeedDoesNotExist for invalid parameters.'

def get_feed(self, obj, request):

    current_site = get_current_site(request)
    link = self.__get_dynamic_attr('link', obj)
    link = add_domain(current_site.domain, link, request.is_secure())
    feed = self.feed_type(title=self.__get_dynamic_attr('title', obj), subtitle=self.__get_dynamic_attr('subtitle', obj), link=link, description=self.__get_dynamic_attr('description', obj), language=settings.LANGUAGE_CODE.decode(), feed_url=add_domain(current_site.domain, (self.__get_dynamic_attr('feed_url', obj) or request.path), request.is_secure()), author_name=self.__get_dynamic_attr('author_name', obj), author_link=self.__get_dynamic_attr('author_link', obj), author_email=self.__get_dynamic_attr('author_email', obj), categories=self.__get_dynamic_attr('categories', obj), feed_copyright=self.__get_dynamic_attr('feed_copyright', obj), feed_guid=self.__get_dynamic_attr('feed_guid', obj), ttl=self.__get_dynamic_attr('ttl', obj), **self.feed_extra_kwargs(obj))
    title_tmp = None
    if (self.title_template is not None):
        try:
            title_tmp = loader.get_template(self.title_template)
        except TemplateDoesNotExist:
            pass
    description_tmp = None
    if (self.description_template is not None):
        try:
            description_tmp = loader.get_template(self.description_template)
        except TemplateDoesNotExist:
            pass
    for item in self.__get_dynamic_attr('items', obj):
        if (title_tmp is not None):
            title = title_tmp.render(RequestContext(request, {'obj': item, 'site': current_site}))
        else:
            title = self.__get_dynamic_attr('item_title', item)
        if (description_tmp is not None):
            description = description_tmp.render(RequestContext(request, {'obj': item, 'site': current_site}))
        else:
            description = self.__get_dynamic_attr('item_description', item)
        link = add_domain(current_site.domain, self.__get_dynamic_attr('item_link', item), request.is_secure())
        enc = None
        enc_url = self.__get_dynamic_attr('item_enclosure_url', item)
        if enc_url:
            enc = feedgenerator.Enclosure(url=smart_unicode(enc_url), length=smart_unicode(self.__get_dynamic_attr('item_enclosure_length', item)), mime_type=smart_unicode(self.__get_dynamic_attr('item_enclosure_mime_type', item)))
        author_name = self.__get_dynamic_attr('item_author_name', item)
        if (author_name is not None):
            author_email = self.__get_dynamic_attr('item_author_email', item)
            author_link = self.__get_dynamic_attr('item_author_link', item)
        else:
            author_email = author_link = None
        pubdate = self.__get_dynamic_attr('item_pubdate', item)
        if (pubdate and (not pubdate.tzinfo)):
            ltz = tzinfo.LocalTimezone(pubdate)
            pubdate = pubdate.replace(tzinfo=ltz)
        feed.add_item(title=title, link=link, description=description, unique_id=self.__get_dynamic_attr('item_guid', item, link), enclosure=enc, pubdate=pubdate, author_name=author_name, author_email=author_email, author_link=author_link, categories=self.__get_dynamic_attr('item_categories', item), item_copyright=self.__get_dynamic_attr('item_copyright', item), **self.item_extra_kwargs(item))
    return feed
