我是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查看数据似乎有效,但实际情况不起作用。
答案 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)
如果添加括号,您将获得预期的结果。