2012-06-13 4 views
0

나는 emencia.django.newsletter을 사용하고 있습니다.emencia.django.newsletter django에서 datetime 문제가 발생했습니다.

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 

내가 장고 1.4

모든 아이디어를 사용 : 나는 send_newsletter`파이썬 manage.py를 실행하면 '이 오류

if self.newsletter.sending_date <= datetime.now() and \ TypeError: can't compare offset-naive and offset-aware datetimes

오류가 나오는 곳입니다을 얻을?

답변

2

귀하의 sending_date 값은시간대 알고 있지만, datetime.now()시간대 순진입니다. 오류 메시지가 말하기 때문에, 당신은 그들을 비교할 수 없습니다.

대답은 비교를 수행하기 전에 now을 시간대 인식 datetime으로 변환하는 것입니다.

import datetime 
from django.utils.timezone import utc 

now = datetime.datetime.utcnow().replace(tzinfo=utc) 
if self.newsletter.sending_date <= now and \ 
    ... 

자세한 내용은 Django 문서 (naive and aware datetime objects)를 참조하십시오.

관련 문제