为什么model.diff在模板中返回18446744073709551615,当模型是这样的,model.pos是0而model.neg是1?:
class Kaart(models.Model):
neg = models.PositiveIntegerField(default=0)
pos = models.PositiveIntegerField(default=0)
def diff(self):
return self.pos - self.neg
答案 0 :(得分:0)
你正在获得下溢,self.pos - self.neg
应该给-1
,但你有一个正数字段,所以它包围了你得到0 - 1 = 18446744073709551615
,这是PositiveIntegerField可以表示的最大正数
供您参考18446744073709551615 = 2**64 - 1
,这意味着PositiveIntegerField存储64位值。
答案 1 :(得分:0)
def diff(self):
return int(self.pos) - int(self.neg)
这应该可以解决问题。