这是一个非常奇怪的问题,但我不明白为什么会发生这种情况:
我写了这段代码:
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)
...
希望你能帮助我理解这一点。
答案 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。