如何在Django admin中解决“无法导入django.contrib.syndication.views.feed”错误?

时间:2011-07-10 17:58:14

标签: python django django-admin

我已经将我的Django版本更新到最新的每晚,我在管理员中收到以下错误;

Could not import django.contrib.syndication.views.feed.  
View does not exist in module django.contrib.syndication.views.

我在几个视图中也遇到了这个错误,因为确实已经弃用django.contrib.syndication.views.feed并且已将其删除 我只需要添加一个

from django.contrib.syndication.views import Feed

from django.contrib.syndication.feeds import Feed

问题是我无法在任何地方找到任何django.contrib.syndication.views.feed的引用,甚至在Django源代码中也找不到,所以我不明白错误来自何处以及如何解决它。

错误的直接来源是

/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/urlresolvers.py in get_callable, line 100

但我也找不到任何东西。

希望有人可以提供帮助!

2 个答案:

答案 0 :(得分:11)

user643511建议错误可能在我自己的代码中,而不是Django。然而,她没有指出真正的问题(我理解,因为我没有提供正确的信息)。经过几天的挖掘,我发现我已经

url(r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}),
urls.py

。相反,我必须使用

url(r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.Feed', {'feed_dict': feeds}),

在观点中注意资本F.Feed。

因此,如果有人遇到类似问题,请查看urls.py。

答案 1 :(得分:7)

也许你的代码有问题,我做了一些测试,高级Feed生成框架运行正常。您只需使用Feed类

django.contrib.syndication.views.Feed

这是一个简单的例子:在你的模特中


# -*- coding: utf8 -*-
from django.utils.translation import ugettext as _
from django.contrib.syndication.views import Feed
from django.db import models

class Concept(models.Model):
    concept = models.IntegerField(unique=True, primary_key=True, verbose_name=_('Concepto'))
    description = models.CharField(max_length=255, verbose_name=_('Descripcion'))

    def __unicode__(self):
        return "%s" % ( self.description or self.concept )

    class Meta:
        verbose_name = _('Concepto')
        verbose_name_plural = _('Conceptos')
        ordering = ['concept']

class LatestEntriesFeed(Feed):
    title = "My site news"
    link = "/sitenews/"
    description = "Updates on changes and additions."

    def items(self):
        return Concept.objects.all()

    def item_code(self, item):
        return item.code

    def item_description(self, item):
        return item.description

并在您的网址中:


from models import LatestEntriesFeed

urlpatterns = patterns('',
    (r'^latest/feed/$', LatestEntriesFeed()),    
)

结果:

我的网站newshttp://example.com/sitenews/Updates on changes and additions.es-esTue,12 Jul 2011 08:18:49 -0000

我希望有所帮助。