使用Django发布订阅源
我正在从一个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系统需要一个“日期时间”对象,而不仅仅是一个日期(因为它需要时区,而日期对象没有时间,更别提时区了...)
不过我可能错了,但这是我通过错误日志发现的情况。