Python Django-模型和视图中的函数不';t返回正确的布尔值
我正在创建一个django应用程序/网站,遇到一些布尔结果的麻烦,我不明白 在我的模型中,我有一个Article类,它有两个函数:Python Django-模型和视图中的函数不';t返回正确的布尔值,python,django-models,django-views,boolean-operations,Python,Django Models,Django Views,Boolean Operations,我正在创建一个django应用程序/网站,遇到一些布尔结果的麻烦,我不明白 在我的模型中,我有一个Article类,它有两个函数: class Article(models.Model): #some vars basetime = models.IntegerField() duration = models.IntegerField() has_begun = models.BooleanField() def remainingTime(self)
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。(which是我要执行的操作的正确值)
我的问题是:如果article.remainingTime=-1,那么article.stillAvailable应该返回False,因此check函数应该返回quid(请求)。
我看不出django/python解释器对article.stillAvailable求值的原因
如果有人能提供帮助,那将非常感谢:p您正在使用
if (article.stillAvailable):
作为属性,而不是将其作为方法调用。由于该属性存在,它被解释为非false。您只需添加括号即可调用该方法。如何确定
文章.remainingTime
为-1
?您是否在check
函数中放置了一些日志?测试视图只显示给定的参数,在我的例子中是-1。我还制作了一个javascript警报,显示article.remainingTime,并且使用这个方法也是-1。我想答案很简单,但现在。。。我得多工作一点!无论如何,谢谢你!