2011-07-10 51 views
5

我已經更新了我的Django版本到最新的每晚,並且我在管理中收到以下錯誤;如何解決Django admin中的「無法導入django.contrib.syndication.views.feed」錯誤?

 
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 

,但我不能沒有找到任何東西要麼。

希望有人能幫忙!

+0

我發現問題的根源至少部分是在我的模板中使用{%comment_form_target%}。可能會有一些動態的猜測發生在表單應該指向的位置,沿途導入Feed。 –

回答

11

user643511建議錯誤可能在我自己的代碼中,而不是在Django中。但是她沒有指出真正的問題(我沒有提供正確的信息,我明白了)。只有挖掘的天后,我發現我在urls.py

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

。相反,我不得不使用

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

注意views.Feed中的大寫字母F.

所以如果有人經過類似的麻煩,請檢查urls.py.

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/更新更新和addit ions.es-esTue,2011年12月12日08:18:49 -0000

我希望有所幫助。

+0

感謝您的迴應,但沒有任何幫助。正如我所說的,我遇到的問題是我不知道錯誤發生在哪裏,因爲我無法在整個系統上找到任何從錯誤名稱空間導入feed的文件。看看你的源代碼很明顯,你沒有運行Django的遲到版本,否則你會導入問題。從django.contrib.syndication.views導入Feed已棄用。 –

+1

對不起,事實證明你畢竟有點權利;該錯誤是在我自己的代碼中。我在我的url中引用了django.contrib.syndication.views.feed,而不是django.contrib.syndication.views.Feed(上帝在細節中)。我將爲那些未來經過的人提交自己的答案。 –

相關問題