4

我正在开发一个博客应用程序,并试图制作一个简单的 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 形式中不起作用。此外,我添加了一些日志记录,并且可以确认在访问提要链接时从未输入过 items 功能。我希望我只是忽略了一些简单的事情。提前感谢您的任何/所有帮助。

4

2 回答 2

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。:)

于 2009-08-19T01:51:59.550 回答
1

你定义了吗

def get_absolute_url(self):

在模型中?

另外,很高兴

if not obj:
    raise FeedDoesNotExist

避免在 Feed 结果不存在时出现错误

于 2009-08-20T00:02:14.837 回答