使用Django发布订阅源

0 投票
3 回答
647 浏览
提问于 2025-04-15 12:01

我正在从一个Django应用程序发布一个信息源。

我继承了django.contrib.syndication.feeds.Feed这个类,其他都正常,唯一的问题是日期没有在信息源中显示。

这是我在Feed类中创建的方法:

def item_pubdate(self, item):
    return item.date

但是这个方法从来没有被调用过……

3 个回答

0

这是我的设置方式,它运行得很好。

class AllFeed(Feed):
    def item_pubdate(self, item):
        return item.date
3

根据Django文档中的Feed类参考,item_pubdate字段应该返回一个datetime.datetime对象。如果item.date只是一个日期字段(DateField),而不是日期时间字段(DateTimeField),这可能就是问题所在。如果真是这样,你可以修改方法,创建一个日期时间对象,然后返回它。

import datetime
def item_pubdate(self, item):
    return datetime.datetime.combine(item.date, datetime.time())
0

我在这个问题上纠结了很久。看起来Django的RSS系统需要一个“日期时间”对象,而不仅仅是一个日期(因为它需要时区,而日期对象没有时间,更别提时区了...)

不过我可能错了,但这是我通过错误日志发现的情况。

撰写回答