首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法导入django.contrib.syndication.views.feed。模块django.contrib.syndication.views中不存在视图。使用django和rss

无法导入django.contrib.syndication.views.feed。模块django.contrib.syndication.views中不存在视图。使用django和rss
EN

Stack Overflow用户
提问于 2013-06-05 18:30:32
回答 1查看 653关注 0票数 0

我正在尝试让RSS与django一起工作

我有一个社交书签应用。

当我尝试访问位于localhost:8000/feed/recent/的rss页面时

我得到以下错误:

代码语言:javascript
复制
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中有以下代码

代码语言:javascript
复制
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有以下代码,我省略了不相关的urls。

代码语言:javascript
复制
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如下所示:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-08 03:53:31

我一直在学习Django的那本书很旧了。

通过查看Django文档,我发现所需的url模式现在可以直接转到RecentBookmarks。

我首先看的是here

并与this进行了比较。

通过这个比较,我发现我需要做的是将url模式更改为以下内容。

代码语言:javascript
复制
(r'^feeds/(?P<url>.*)/$', RecentBookmarks()),

我还发现,除非我安装了RSS Subscription extension,否则在RSS中不能使用google chrome浏览器。

在进行这些更改之后,它现在可以正常工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16937584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档