Как устранить ошибку «Не удалось импортировать django.contrib.syndication.views.feed» в администраторе Django? - PullRequest
5 голосов
/ 10 июля 2011

Я обновил свою версию 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 ]

11 голосов
/ 14 июля 2011

user643511 предположил, что ошибка может быть в моем собственном коде, а не в Django. Однако она не указала на реальную проблему (которую я понимаю, так как я не предоставил нужную информацию). Только после нескольких дней копания я обнаружил, что у меня было

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

in urls.py . И вместо этого мне пришлось использовать

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

Подумайте о столице F. Feed.

Так что, если кто-то проходит с подобной проблемой, проверьте urls.py.

7 голосов
/ 12 июля 2011

Может быть, у вас что-то не так в вашем коде, я провожу тестирование, и высокоуровневая структура генерации каналов работает нормально.Вам нужно использовать только класс 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

и в вашем URL:


from models import LatestEntriesFeed

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

результат:

Новости моего сайта http://example.com/sitenews/Updates об изменениях и дополнениях. Es-esTue, 12 июля 2011 г. 08:18:49 -0000

Надеюсь, что поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...