Джанго - простое уравнение - PullRequest
0 голосов
/ 21 декабря 2009

почему 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

Ответы [ 2 ]

0 голосов
/ 21 декабря 2009

Питер, вероятно, прав. Попробуйте:

def diff(self):
    return int(self.pos) - int(self.neg)

Это должно сработать.

0 голосов
/ 21 декабря 2009

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

Для справки: 18446744073709551615 = 2**64 - 1, что означает, что PositiveIntegerField хранит 64-битные значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...