Django models 在Django模型中添加带有if-else条件的计算字段
如何在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
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方法。。如前所述,我是这方面的新手,你能帮我想一下到底在哪里添加这个吗。