Django models 在Django模型中添加带有if-else条件的计算字段

Django models 在Django模型中添加带有if-else条件的计算字段,django-models,Django Models,如何在Django模型中添加带有if-else条件的计算字段? 比如说, def _get_total(self): "Returns the Overall Backlog" return self.Forecast - self.Actual_t Overall_Backlog = property(_get_total) 在这里,我想创建一个像if(self.Forecast-self.Actual\t)这样的条件,就像这样: @property def

如何在Django模型中添加带有if-else条件的计算字段? 比如说,

def _get_total(self):
   "Returns the Overall Backlog"
   return self.Forecast - self.Actual_t
Overall_Backlog = property(_get_total)
在这里,我想创建一个像if
(self.Forecast-self.Actual\t)这样的条件,就像这样:

@property
def Overall_Backlog(self):
   "Returns the Overall Backlog"
    val = self.Forecast - self.Actual_t
    if val < 0:
        return 0
    return val
由此
QuerySet
生成的
MyModel
对象将具有一个额外的属性
。总体积压工作
,它是
预测-实际
0
的最大值,与此完全相同:

@property
def Overall_Backlog(self):
   "Returns the Overall Backlog"
    val = self.Forecast - self.Actual_t
    if val < 0:
        return 0
    return val

由此
QuerySet
生成的
MyModel
对象将具有一个额外属性
。总体积压
,它是
预测-实际
0
的最大值!谢谢你的回复。。第二种方法是在models.py文件中添加注释。并得到一个错误,mymodel(在我的例子中是dem_工具)没有定义。。我仅在dem_工具类中使用了此注释函数。你能建议如何让它运行吗?PS我是一个新手,没有这样的背景,所以,忽略我愚蠢的问题。。提前谢谢@GauravNailwal:
MyModel
是模型类,因此如果模型名称是
dem\u tool
,它应该是
dem\u tool.objects.annotate(…)
这样做了,但是得到了一个错误,没有定义dem\u tools。@GauravNailwal:但是您需要在使用queryset的视图中导入它。您好,Willem,您关于属性的看法是正确的,我无法通过queryset方法访问此字段。但我无法实现annotate方法。。如前所述,我是这方面的新手,你能帮我准确地添加这个吗?嗨!谢谢你的回复。。第二种方法是在models.py文件中添加注释。并得到一个错误,mymodel(在我的例子中是dem_工具)没有定义。。我仅在dem_工具类中使用了此注释函数。你能建议如何让它运行吗?PS我是一个新手,没有这样的背景,所以,忽略我愚蠢的问题。。提前谢谢@GauravNailwal:
MyModel
是模型类,因此如果模型名称是
dem\u tool
,它应该是
dem\u tool.objects.annotate(…)
这样做了,但是得到了一个错误,没有定义dem\u tools。@GauravNailwal:但是您需要在使用queryset的视图中导入它。您好,Willem,您关于属性的看法是正确的,我无法通过queryset方法访问此字段。但我无法实现annotate方法。。如前所述,我是这方面的新手,你能帮我想一下到底在哪里添加这个吗。