У меня есть постановка задачи, где мне нужно, чтобы мое поле сохраняло значение как десятичное, но при вызове его поле должно возвращать округленное целочисленное значение
Пример
mymodel.myfield = 12,61
mymodel.save ()
Input
mymodel.myfield
выход
13
и если возможно
mymodel.myfield.get_raw
выход
12,61
Могу ли я использовать поле пользовательской модели django?
class MyField(models.DecimalField):
def __init__(self, verbose_name=None, name=None, max_digits=None,
decimal_places=None, **kwargs):
super(MyField, self).__init__(*args, **kwargs)
def get_raw(self, value):
return value
def to_python(self, value):
if value is None:
return value
try:
return decimal.Decimal(value)
except decimal.InvalidOperation:
raise exceptions.ValidationError(
self.error_messages['invalid'],
code='invalid',
params={'value': value},
)