NicholasStudt

Changeset 355


Ignore:
Timestamp:
07/19/10 22:57:28 (7 weeks ago)
Author:
nicholas
Message:

Feeds now use new framework and require Django 1.2.
The Tags feed now works as expected.

Location:
Python/blog/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • Python/blog/trunk/Changes

    r354 r355  
    66   provided by Carson Gee.) 
    77 - Added month_calendar template tag. 
     8 - Migrated to new feeds framework (Now reuqire Django 1.2) 
     9 - Feed by tag now works as expected. You can specify one custom tag to 
     10   get a individualized feed. 
    811  
    9121.2 (May  3 2010): 
  • Python/blog/trunk/blog/feeds.py

    r346 r355  
    1 from django.contrib.syndication.feeds import Feed 
     1from django.contrib.syndication.views import Feed 
    22from django.contrib.sites.models import Site 
    33from django.contrib.comments.feeds import LatestCommentFeed 
     
    55from django.shortcuts import get_object_or_404 
    66 
    7 from blog.models import Entry 
     7from blog.models import Entry, Tag 
    88 
    9 class LatestEntries(Feed): 
     9class LatestEntriesFeed(Feed): 
    1010    _site = Site.objects.get_current() 
    1111    title = '%s feed' % _site.name 
    1212    description = '%s posts feed.' % _site.name 
    1313 
    14     def link(self): 
    15         return reverse('entry_index') 
     14    def items(self): 
     15        return Entry.objects.published()[:10] 
    1616 
    1717    def item_pubdate(self, obj): 
    1818        return obj.pub_date 
    1919 
    20     def items(self): 
    21         return Entry.objects.published()[:10] 
     20    def link(self): 
     21        return reverse('entry_index') 
     22 
    2223 
    2324class LatestEntriesByTag(Feed): 
     
    2526 
    2627    def get_object(self, request, tag): 
    27         return get_object_or_404(Tag, slug=tag) 
     28        return get_object_or_404(Tag, tag=tag) 
    2829 
    2930    def title(self, obj): 
    30         return '%s feed: %s' % [_site.name, obj.tag] 
     31        return '%s feed: %s' % (self._site.name, obj.tag) 
    3132 
    3233    def description(self, obj): 
    33         return '%s posts feed for %s' % [_site.name, obj.tag] 
     34        return '%s posts feed for %s' % (self._site.name, obj.tag) 
    3435 
    3536    def link(self, obj): 
    36         return reverse('tag_list', ident=obj.tag) 
     37        return reverse('tag_list', args=[obj.tag]) 
    3738 
    3839    def item_pubdate(self, obj): 
     
    4344 
    4445class LatestComments(LatestCommentFeed): 
     46    # Accept all of the contrib.comments defaults. 
    4547    pass 
    46     # Accept all of the contrib.comments defaults. 
  • Python/blog/trunk/blog/urls.py

    r352 r355  
    11from django.conf.urls.defaults import * 
    2 from blog.feeds import LatestEntriesByTag, LatestEntries, LatestComments 
     2from blog.feeds import LatestEntriesByTag, LatestEntriesFeed, LatestComments 
    33 
    4 feeds = {    
    5     'latest': LatestEntries, 
    6     'tags': LatestEntriesByTag, 
    7     'comments': LatestComments, 
    8 } 
    94 
    105urlpatterns = patterns('', 
     
    4641 
    4742    # /feeds/tags, /feeds/latest, 
    48     url(r'^feeds/(?P<url>.*)/?$', 'django.contrib.syndication.views.feed', 
    49             {'feed_dict': feeds}), 
     43    url(r'^feeds/latest/?$', LatestEntriesFeed(),  
     44        name='feed_latest'), 
     45 
     46    url(r'^feeds/tags/(?P<tag>[-\w]+)/?$', LatestEntriesByTag(),  
     47        name='feed_tags' ), 
     48 
     49    url(r'^feeds/comments/?$', LatestComments(), name='feed_comments' ), 
    5050 
    5151    url(r'^comments/', include('django.contrib.comments.urls')), 
Note: See TracChangeset for help on using the changeset viewer.