Django int比较不起作用

时间:2013-09-20 09:57:06

标签: python django if-statement int

这是一个非常奇怪的问题,但我不明白为什么会发生这种情况:

我写了这段代码:

stusr = int(su.total)
if not stusr == 0:

但是,即使我确实知道stusr.total永远不会为0(它总是被初始化),它永远不会执行if命令。即使我试图除以su.total计算一个百分比,我也会得到错误,说我不能除以0。

当我在屏幕中显示stusr时,我得到非零值,所以我确定我正确地初始化它。

这是我的模特

class StatsUser(models.Model):
  correct = models.IntegerField(default=0)
  incorrect = models.IntegerField(default=0)
  total = models.IntegerField(default=0)
  ...

希望你能帮助我理解这一点。

2 个答案:

答案 0 :(得分:1)

虽然这是一个奇怪的习语,但它应该有用。尝试以下(使用正确的语法):

stusr = int(su.total)
if stusr:             # (all non-zero integer values are true)
    print("Yay, stusr is nonzero!")
else:
    print("Wha? But su.total is {}!".format(repr(su.total)))

答案 1 :(得分:1)

在转换为int之前,你不能做print su.total吗?在铸造前看它的价值是什么。 此外,total字段是IntegerField,这些字段不必强制转换为int。