I'm trying to set up a very simple RSS Feed. I've followed the docs, read blog posts, searched this site for similar questions etc but I'm still stuck...
In Model.py
class Events(models.Model):
title = models.CharField(max_length=50)
date = models.DateField(max_length=10)
def __unicode__(self):
return self.title
In feeds.py
class UpcomingEventsFeed(Feed):
title = "Upcoming events for ChristChurch School"
link = "/"
description = "Information taken from the ChristChurch school website"
def items(self):
return Events.objects.order_by('-date')[:10]
urls.py
feeds = {
'events': UpcomingEventsFeed,
}
url.py
(r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}),
(r'^feeds/events/$', UpcomingEventsFeed()),
But when I go to /feeds/events/ I get a
Slug u'events' isn't registered.
This blogpost goes into more depth that the docs and suggests that the feeds dictionary isn't synced with my url but I can't see the problem?
Then the other thing that could be an issue is the slug? I've read what a slug is but what do I need to do with it? Do I need to put something in my model like get_absolute_url()?
Appologies if it's a glaring error but I'm a newcomer to the framework and progrmaming in general. Thanks
Give your class Events a get_absotule_url method. This will save you trouble for links in the feed view. Try to set up your urls.py like this:
from your.path.to.feed import UpcomingEventsFeed
#...
(r'^feeds/events/$', UpcomingEventsFeed()),
#...
Dont use this line: (r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}),
it will intercept the call to the second line and throw the error.
I hope this helps.