Django models 如何计算Django模型中两个字段的总和? 将值(a+b)存储在c字段中

Django models 如何计算Django模型中两个字段的总和? 将值(a+b)存储在c字段中,django-models,django-3.2,Django Models,Django 3.2,R类(型号.型号): 我建议不要将总数存储在字段中。由于c仅依赖于a和b,因此我们可以使用一个属性按需计算此值。例如: lass R(models.Model): a = models.IntegerField(null=True) b = models.IntegerField(null=True) @property def c(self): if self.a is not None and self.b is not None:

R类(型号.型号):

我建议不要将总数存储在字段中。由于
c
仅依赖于
a
b
,因此我们可以使用一个属性按需计算此值。例如:

lass R(models.Model):
    a = models.IntegerField(null=True)
    b = models.IntegerField(null=True)

    @property
    def c(self):
        if self.a is not None and self.b is not None:
            return self.a + self.b
from django.db.models import F

R.objects.annotate(
    my_c=F('a')+F('b')
).filter(my_c__gt=10)
因为,我们可以使用以下工具:

从django.db.models导入F
R.objects.alias(
my_c=F('a')+F('b'))

).filter(my_c_ugt=10)
这不是问题。你应该解释你的目标是什么,你尝试了什么,什么不起作用。那么,我如何将求和值存储在同一个模型的另一个字段中?@Md.RedoneHassan:你不应该这样做,因为这是数据重复,而且即使在同一个数据库上,保持值同步是一个困难的问题。那么如何解决这类问题呢?有什么办法吗?@Md.RedoneHassan:使用属性,而不是数据库字段。好的。那个么如何使用属性返回值并将该值存储在数据库中呢?
from django.db.models import F

R.objects.annotate(
    my_c=F('a')+F('b')
).filter(my_c__gt=10)
from django.db.models import F

R.objects.alias(
    my_c=F('a')+F('b')
).filter(my_c__gt=10)