Вы получаете недостаточное значение, где self.pos - self.neg
должно давать -1
, но у вас есть положительное поле, поэтому оно оборачивается, и вы получаете 0 - 1 = 18446744073709551615
, наибольшее положительное число, представляемое PositiveIntegerField.
Для справки: 18446744073709551615 = 2**64 - 1
, что означает, что PositiveIntegerField хранит 64-битные значения.