私は 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