2009-08-19 1 views
3

Я работаю над приложением для ведения блогов и стараюсь сделать просто простую функцию системы RSS-каналов. Тем не менее, я сталкиваюсь с необычной ошибкой, которая не имеет для меня большого смысла. Я понимаю, что происходит, но я не понимаю, почему. Мой класс RSS поток ниже:Проблемы с RSS-сообщением Django

class RSSFeed(Feed): 
    title = settings.BLOG_NAME 
    description = "Recent Posts" 
    def items(self): 
     return Story.objects.all().order_by('-created')[:10] 

    def link(self, obj): 
     return obj.get_absolute_url() 

Однако я получил следующее сообщение об ошибке (полный стек трассировки в http://dpaste.com/82510/):

AttributeError: 'NoneType' object has no attribute 'startswith' 

Это приводит меня к мысли, что он не получает каких-либо предметов вообще. Тем не менее, я могу перейти к оболочке и захватить те объекты Story, и я могу перебирать их, возвращая абсолютный URL без каких-либо проблем. Таким образом, казалось бы, обе части Корма работают, только когда он находится в форме подачи. Кроме того, я добавил некоторые записи и могу подтвердить, что функция пунктов никогда не, введенная при посещении ссылки каналов. Я надеюсь, что просто прошу прощения. Заранее спасибо за любую/любую помощь.

ответ

4

Переход к:

class RSSFeed(Feed): 
    title = settings.BLOG_NAME 
    link = "/blog/" 
    description = "Recent Posts" 

    def items(self): 
     return Story.objects.all().order_by('-created')[:10] 

Fixed его. Не уверен, что я полностью понимаю это ... но whatev. :)

+0

Возможно, ожидается, связь не принимать никаких других, чем себя аргументы, но при условии, OBJ тоже –

+1

Спасибо за это. Раздражает, что если вы не предоставляете свойство ссылки, оно дергается. Если это необходимо, сообщите мне об этом. – Tom

1

есть вы определили

def get_absolute_url(self): 

в модели?

также, приятно

if not obj: 
    raise FeedDoesNotExist 

, чтобы избежать ошибок при результате подачи нет