无法将datetime.datetime与builtin_function_or_method进行比较

时间:2015-11-04 13:50:04

标签: python django datetime

我是Django的新手。

我创建了赞助商模型,该模型具有start_date(开始日期成为赞助商)和end_date(赞助商的结束日期)。

start_date = models.DateField(
        _("Start date"),
        default=datetime.date.today)

end_date = models.DateField(
        _("End date"),
        default=datetime.date.today)

我想将所有逻辑放在模型中,如果不可能那么我想把逻辑放在视图中。我创建了方法current_sponsor,可以返回True或False(如果今天在start_date范围内,end_date意味着True其他False)。

这是我的current_sponsor方法

def current_sponsor(self):
        today = datetime.date.today
        if today >= self.start_date:
            return True
        elif today <= self.end_date:
            return True
        else:
            return False

问题是我收到错误can't compare datetime.datetime to builtin_function_or_method

我尝试使用django shell查看数据似乎有效,但实际情况不起作用。

1 个答案:

答案 0 :(得分:4)

datetime.date.today没有调用您认为的功能:

>>> import datetime
>>> datetime.date.today
<built-in method today of type object at 0x7fb681a90f80>  # NOT CALLING FUNCTION

>>> datetime.date.today()  # You need () at the end
datetime.date(2015, 11, 4) 

如果添加括号,您将获得预期的结果。