RSSをdjangoで動作させようとしています
私はソーシャルブックマークアプリを持っています。
localhost:8000/feeds/recent/ の RSS ページにアクセスしようとすると
次のエラーが表示されます。
Could not import django.contrib.syndication.views.feed. View does not exist in module django.contrib.syndication.views.
私はpython 2.7.3とdjango 1.5.1を使用しています
関連すると思われるコードのみを示します。
feeds.py に次のコードがあります
from django.contrib.syndication.views import Feed
from bookmarks.models import Bookmark
class RecentBookmarks(Feed):
title = 'Django Bookmarks | Recent Bookmarks'
link = '/feeds/recent/'
description = 'Recent bookmarks posted to Django Bookmarks'
def items(self):
return Bookmark.objects.order_by('id')[:10]
urls.py には次のコードがあります。関係のない URL は除外しました。
import os.path
from django.conf.urls.defaults import *
from bookmarks.views import *
from bookmarks.feeds import *
from django.views.generic import TemplateView
from bookmarks.models import Link, Bookmark, Tag, SharedBookmark
site_media = os.path.join(
os.path.dirname(__file__), 'site_media'
)
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
admin.site.register(Link)
class BookmarkAdmin(admin.ModelAdmin):
list_display = ('title', 'link', 'user')
list_filter = ('user',)
ordering = ('title',)
search_fields = ('title',)
admin.site.register(Bookmark, BookmarkAdmin)
admin.site.register(Tag)
admin.site.register(SharedBookmark)
feeds = {
'recent': RecentBookmarks
}
urlpatterns = patterns('',
# Feeds
(r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed',
{'feed_dict': feeds }),
)
models.py は次のようになります。
from django.db import models
from django.contrib.auth.models import User
class Link(models.Model):
url = models.URLField(unique=True)
def __str__(self):
return self.url
class Bookmark(models.Model):
title = models.CharField(max_length=200)
user = models.ForeignKey(User)
link = models.ForeignKey(Link)
def __str__(self):
return '%s %s' % (self.user.username, self.link.url)
def get_absolute_url(self):
return self.link.url