首页 文章

django个人过滤日期时间

提问于
浏览
0

我想查找日期和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

    如果您在设置中启用了时区,则需要了解所有 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)

相关问题