我正在使用emencia.django.newsletter。当我运行‘`python manage.py send_newsletter’时,我得到这个错误
if self.newsletter.sending_date <= datetime.now() and \ TypeError: can't compare offset-naive and offset-aware datetimes
这就是错误的来源:
def can_send(self):
"""Check if the newsletter can be sent"""
if self.test:
return True
if self.newsletter.sending_date <= datetime.now() and\
(self.newsletter.status == Newsletter.WAITING or\
self.newsletter.status == Newsletter.SENDING):
return True
return False我使用Django 1.4
有什么想法吗?
发布于 2012-06-13 18:51:15
您的时区值是时区感知的,但datetime.now()是sending_date原生的。正如错误消息所说,您无法对它们进行比较。
答案是在进行比较之前将now转换为时区感知的datetime。
import datetime
from django.utils.timezone import utc
now = datetime.datetime.utcnow().replace(tzinfo=utc)
if self.newsletter.sending_date <= now and \
...有关更多信息,请参阅naive and aware datetime objects上的Django文档。
https://stackoverflow.com/questions/11012945
复制相似问题