django个人过滤日期时间

时间:2015-07-27 20:22:30

标签: python django django-templates django-filter django-template-filters

我想查找日期和15天后的日期之间的天数。 我创建了一个个人过滤器:

register = template.Library()

import datetime

@register.filter
def nbDays(thedate):
    res = 0
    passed = datetime.datetime.now() - thedate
    res = 15 - passed   
return res

我有这个错误:

can't subtract offset-naive and offset-aware datetimes

当我打电话给方法时:

{% load nameOfFile %}

{{ objectGood.created_at|nbDays }}

1 个答案:

答案 0 :(得分:0)

如果您在设置中启用了时区,则需要让所有datetime个对象时区识别。

Django让这很容易;

register = template.Library()

from django.utils import timezone

@register.filter
def nbDays(thedate):
    res = 0
    passed = timezone.now() - thedate
    res = 15 - passed   
return res

或者,您可以从日期时间对象中删除时区感知;

timezone_unaware_date = thedate.replace(tzinfo=None)