我正在开发一个博客应用程序,并尝试制作一个简单的RSS提要系统功能。但是,我遇到了一个奇怪的错误,对我来说没有多大意义。我理解可能会发生什么,但我不明白为什么。我的RSS Feed课程如下:
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'
这让我相信它没有收到任何任何对象。但是,我可以放到shell并抓住那些Story对象,我可以迭代它们返回绝对url而没有任何问题。因此看起来Feed的两个部分都有效,而不是以Feed形式出现。此外,我添加了一些日志记录,并且可以确认在访问供稿链接时项目功能从不输入。我希望我只是忽略了一些简单的东西。提前感谢您的帮助。
答案 0 :(得分:4)
更改为:
class RSSFeed(Feed):
title = settings.BLOG_NAME
link = "/blog/"
description = "Recent Posts"
def items(self):
return Story.objects.all().order_by('-created')[:10]
修正了它。不确定我完全理解它..但是whatev。 :)
答案 1 :(得分:1)
你定义了
def get_absolute_url(self):
在模型中?
另外,很高兴
if not obj:
raise FeedDoesNotExist
以避免在Feed结果不存在时出错