首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django提要框架: tzinfo错误

Django提要框架: tzinfo错误
EN

Stack Overflow用户
提问于 2011-08-28 15:28:15
回答 2查看 6.8K关注 0票数 2

我使用的是django feed框架。这是我的feeds.py中的内容:

代码语言:javascript
复制
def item_pubdate(self, item):
    return item.posted

这是我在models.py中的博客类中的内容:

代码语言:javascript
复制
posted = models.DateField(db_index=True, auto_now_add=True)

我得到了这个属性错误:

代码语言:javascript
复制
'datetime.date' object has no attribute 'tzinfo'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-28 16:44:46

有关def item_pubdate的要求,请参阅https://docs.djangoproject.com/en/dev/ref/contrib/syndication/。这是因为大多数提要格式在技术上都需要完整的时间戳作为发布日期。

您为提要定义的item_pubdate函数必须返回python datetime.datetime对象,而不是datetime.date对象。不同之处在于,除了日期信息之外,对象还可以包含特定的时间。

因此,您必须使用models.DateTimeField而不是models.DateField

--

如果您坚持使用models.DateField,那么您可以让您的提要类进行转换:

代码语言:javascript
复制
from datetime import datetime, time

def item_pubdate(self, item):
    return datetime.combine(item.posted, time())

这应该会将您的日期转换为日期时间,以便contrib.syndication接受它。

票数 16
EN

Stack Overflow用户

发布于 2014-07-08 03:15:55

Django期望的是datetime而不是date。这里有一个隐藏它的方法:

代码语言:javascript
复制
import datetime

def item_pubdate(self, item):
    return datetime.datetime(item.posted.year, item.posted.month, item.posted.day)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7219599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档