我正在创建一个 django 应用程序/网站,但遇到了一些我不理解的布尔结果。
在我的模型中,我有一个带有 2 个功能的 Article 类:
class Article(models.Model):
#some vars
basetime = models.IntegerField()
duration = models.IntegerField()
has_begun = models.BooleanField()
def remainingTime(self):
if(self.basetime + self.duration) - time.time() >= 0:
return ((self.basetime + self.duration) - time.time())
else:
return -1
def stillAvailable(self):
if self.remainingTime() >= 0:
return True
return False
在我看来,我有一个功能检查:
def check(request,i):
try:
article = Article.objects.get(pk=i)
except Article.DoesNotExist:
return ccm(request)
if (article.stillAvailable):
return test(request,article.remainingTime)
else:
return quid(request)
当一个页面调用check时,我的浏览器显示测试页面,参数article.remainingTime为-1。(这是我想做的正确值)。
我的问题是:如果 article.remainingTime = -1,那么 article.stillAvailable 应该返回 False,所以检查函数应该返回 quid(request)。我看不出 django/python 解释器评估 article.stillAvailable True 的原因。
如果有人可以提供帮助,将不胜感激:P