Django日期时间问题

时间:2014-04-09 15:39:55

标签: python django datetime

我所尝试的并不困难,但它确实无法运作。我看不出错误在哪里。在我的抽象用户模型中,我有一个不起作用的is_donator方法。

    @property 
def is_donator(self):
    if(self.donator >= datetime.now()):
        return True
    else:
        return False    

有些原因它只是没有返回任何东西,但是对我而言,这一切看起来都没问题?

1 个答案:

答案 0 :(得分:0)

您有两个相关问题。首先是你使用了错误的比较。

if(self.donator >= datetime.now()):

这意味着捐赠者必须在未来的某个时刻成为捐赠者。

将其更改为

if(self.donator <= datetime.now()):

这将确保他们在过去成为捐赠者。

您遇到的另一个问题是您使用的是auto_now

  

每次保存对象时自动将字段设置为 。   对“最后修改”的时间戳有用。请注意,当前日期是   总是用;它不仅仅是您可以覆盖的默认值。

然后,这与您的第一个问题有关。每次更新用户字段时 - 如果您没有明确设置字段 - 它默认为现在。

基于评论进行更新:这是检查您的捐赠者是否为空,并确保其存在。如果它不存在,由您决定您的逻辑,但如果它不存在,您的用户不是捐赠者。您可以return False阻止except块中的def is_donator(self): try: if self.donator: # This is checking that self.donator is not null if(self.donator >= datetime.now()): return True else: return False else: # return false? # This runs if self.donator is null except NameError: # do something (or just 'pass', because your self.donator value doesn't exist) 。这个块非常冗长,但它会明确地向您显示正在发生的事情。

{{1}}