【发布时间】:2009-06-03 14:12:40
【问题描述】:
我正在发布来自 Django 应用程序的提要。
我对 django.contrib.syndication.feeds.Feed 进行了子类化,一切正常,除了没有在 Feed 上发布的日期。
这是我在 Feed 类中创建的方法
def item_pubdate(self, item): 返回项目.日期这个方法永远不会被调用......
【问题讨论】:
我正在发布来自 Django 应用程序的提要。
我对 django.contrib.syndication.feeds.Feed 进行了子类化,一切正常,除了没有在 Feed 上发布的日期。
这是我在 Feed 类中创建的方法
def item_pubdate(self, item): 返回项目.日期这个方法永远不会被调用......
【问题讨论】:
根据 Django 文档中的Feed Class Reference,item_pubdate 字段应该返回一个 datetime.datetime 对象。如果 item.date 只是 DateField 而不是 DateTimeField,则可能会导致问题。如果是这种情况,您可以更改方法以创建日期时间,然后返回。
import datetime
def item_pubdate(self, item):
return datetime.datetime.combine(item.date, datetime.time())
【讨论】:
一段时间以来,我一直在用头撞这个。 django rss 系统似乎需要一个“日期时间”对象而不仅仅是日期(因为它需要一个时区,而日期对象没有时间,更不用说时区了......)
虽然我可能错了,但这是我通过错误日志发现的。
【讨论】:
这就是我的设置方式,它正在工作。
class AllFeed(Feed):
def item_pubdate(self, item):
return item.date
【讨论】: