Python Django-模型和视图中的函数不';t返回正确的布尔值

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)

我正在创建一个django应用程序/网站,遇到一些布尔结果的麻烦,我不明白

在我的模型中,我有一个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。(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。我想答案很简单,但现在。。。我得多工作一点!无论如何,谢谢你!