我所尝试的并不困难,但它确实无法运作。我看不出错误在哪里。在我的抽象用户模型中,我有一个不起作用的is_donator方法。
@property
def is_donator(self):
if(self.donator >= datetime.now()):
return True
else:
return False
有些原因它只是没有返回任何东西,但是对我而言,这一切看起来都没问题?
答案 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}}