Как преобразовать экземпляр models.IntegerField() в int?

Я читал Как преобразовать models.IntegerField() в целое число (плакату действительно нужна функция copy-constructor).И я искал в Google.

Но это не помогает.

что я хочу сделать:

#In app/models.py

class Foo:
    a1 = models.IntergeField()
    a2 = models.IntergeField()
    #....
    #many else
    b1 = convertToInt(a1) * 3 + convertToInt(a2) *4 + convertToInt(a7) #calc by needing
    b2 = convertToInt(a2) * 2 + convertToInt(a3) + convertToInt(a5) #calc by needing
    #....
    #many else
    #b(b is price actually) will be used in somewhere else.Its type need be int for programmer-friendly using

любой совет?

P.S. Английский не является моим родным языком. Пожалуйста, простите мои синтаксические ошибки.

Поскольку вы указали в комментариях, что вам не нужно хранить производные атрибуты, я предлагаю следующее решение. Здесь атрибуты вычисляются каждый раз, и вы можете использовать их так же, как вы бы использовали атрибуты a1 и a2.


class Foo(models.Model):
    a1 = models.IntegerField()
    a2 = models.IntegerField()
 
    @property
    def b1(self):
        return self.a1*3 + self.a2*4  # + ...

    @property
    def b2(self):
        return self.a2*3 + self.a3  # + ...
Вернуться на верх