From 4654a4efe40fb23e709005044410eb65a25ae63a Mon Sep 17 00:00:00 2001 From: Jiangge Zhang Date: Mon, 10 Nov 2014 11:40:26 +0800 Subject: [PATCH] fix up the datetime comparison error caused by timezone. "can't compare offset-naive and offset-aware datetimes". --- pelican/contents.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pelican/contents.py b/pelican/contents.py index beff2106..c3d1230b 100644 --- a/pelican/contents.py +++ b/pelican/contents.py @@ -11,6 +11,7 @@ import os import re import sys +import pytz from pelican import signals from pelican.settings import DEFAULT_CONFIG @@ -132,8 +133,12 @@ class Content(object): # manage status if not hasattr(self, 'status'): self.status = settings['DEFAULT_STATUS'] - if not settings['WITH_FUTURE_DATES']: - if hasattr(self, 'date') and self.date > SafeDatetime.now(): + if not settings['WITH_FUTURE_DATES'] and hasattr(self, 'date'): + if self.date.tzinfo is None: + now = SafeDatetime.now() + else: + now = SafeDatetime.utcnow().replace(tzinfo=pytz.utc) + if self.date > now: self.status = 'draft' # store the summary metadata if it is set