@Rogerg

Как создать поле в models Django которое является результатом арифметической операции других полей?

У меня к примеру есть такой класс в models.py
class Myclass(model.Model):
    x = models.Floatfield()
    y = models.Floatfield()
    result = ?

Можно ли как-то создать поле result , которое например результат умножения x*y?
Я правильно понимаю что в Postgres для этого надо создавать триггер
  • Вопрос задан
  • 791 просмотр
Пригласить эксперта
Ответы на вопрос 3
Используй методы модели - туда можно пробросить данные из других моделей.
Ответ написан
Комментировать
syschel
@syschel
freelance/python/django/backend
class Myclass(model.Model):
    x = models.Floatfield()
    y = models.Floatfield()
    
    def result(self):
        return self.x + self.y

a = Myclass.objects.first()
print(a.result)
Ответ написан
Комментировать
netpastor
@netpastor
Python developer
А есть ли нужда на стороне питона вычислять и хранить в БД это значение, когда просто можно перенести его вычисление на сторону сервера БД.
from django.db.models import F
queryset = Myclass.objects.annotate(result=F('x')*F('y')).values('x', 'y', 'result')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы