我是Django的新手,有问题。
我需要有两个模型,但其中一个特殊之处是其中一个字段“ total”是其他模型的两个字段的减法,但是“ total”尚未保存在db中。
class Account(models.Model):
number = models.CharField()
total = 0.0
def __get_total(self):
return movement.input - movement.output
# I don't know how to
# join A with B
# should be query about whole
# movement of a particular account
total = property(__get_total)
class Movement(models.Model):
input = models.DecimalField()
output = models.DecimalField()
account = models.ForeignKey(Account, related_name='account')
答案 0 :(得分:1)
def __total(self):
from django.db.models import Sum
obj=Movement.objects.filter(account=self).values('account').annotate(inSum=Sum('input'),outSum=Sum('output').first()
total=obj['inSum']-obj['outSum']
您可以将import语句移动到文件顶部。