2016-04-18 70 views
0

使用Django我想检查的日期是在未来的30天,kwargs['datetime']是DRF给出一个日期:Django的unorderable类型

from datetime import date, timedelta 
if kwargs['datetime'] > timedelta(days=30): 
    pass 

我得到的错误: unorderable类型:datetime.datetime ()> datetime.timedelta()

是一个Django时区与数据时间不兼容,或者我在做其他事情吗?

+0

一个是绝对的,另一个是三角洲。您需要将差值转换为绝对值(通过使用另一个绝对值来引用它)。 –

+0

如果您从其他日期时间添加或减去'timedelta',则计算'datetime'。我不确定你在这里做什么。 – AKS

+0

@AKS更新OP – Prometheus

回答

3

你可以使用timezone来获取当前日期时间:

from django.utils import timezone 
now = timezone.now() 

,并检查是否从DRF日期时间是后在未来30天后可以添加timedeltanow

# or >= as per your requirement 
if kwargs['datetime'] > now + timedelta(days=30): 
    pass 

如果禁用时区支持,则可以按如下方式获取当前日期时间:

import datetime 
now = datetime.datetime.now() 

More Here

相关问题