我如何从模型中获取字段并计算一些字段并将它们传递给我的模板?
How i can fetch fields from models and calculate some filed and pass them to my template?
我的model.py
class Main(models.Model):
name= ....
amount = models.PositiveIntegerField(default=40000)
在我看来:
def mainf(request):
listmain = models.Main.objects.all()
for data in listmain:
value = data.amount * 5
calculated_data = data_and_value
context = {'main':calculated_data}
return render(request,'main/main.html',context)
我如何从模型中获取字段并计算一些字段并将它们(calculated_data)传递到我的模板?
例如我想按小时计算工资。我想从数据库中获取小时数并计算小时数*500,然后将小时数和薪水发送到我的模板。
data_and_value
可以是对象或任何东西。我想要这个并发送到我的模板
要么将它们定义为模型的属性,要么通过上下文将它们传递给模板。
如果值完全基于一个模型实例中的字段,最好定义一个 属性。例如,
class Thing( models.Model)
# Thing has height, width, depth fields
...
@property
def adjusted_volume(self):
return (self.height+10) * (self.width+10) * (self.depth+10)
在您的模板(实际上在您的代码中)中,您现在可以引用 {{ thing.adjusted_volume }}
,假设 thing
已明确包含在上下文中,或者通过 class-基于视图的 context_object_name="thing"
您的问题显示了一个示例,该示例将不限于单个对象实例的计算结果传递给模板,您可以在其中将其称为 {{ main}}
(但代码不正确,value
被反复计算然后循环丢掉,data_and_value
没有定义)。
我的model.py
class Main(models.Model):
name= ....
amount = models.PositiveIntegerField(default=40000)
在我看来:
def mainf(request):
listmain = models.Main.objects.all()
for data in listmain:
value = data.amount * 5
calculated_data = data_and_value
context = {'main':calculated_data}
return render(request,'main/main.html',context)
我如何从模型中获取字段并计算一些字段并将它们(calculated_data)传递到我的模板?
例如我想按小时计算工资。我想从数据库中获取小时数并计算小时数*500,然后将小时数和薪水发送到我的模板。
data_and_value
可以是对象或任何东西。我想要这个并发送到我的模板
要么将它们定义为模型的属性,要么通过上下文将它们传递给模板。
如果值完全基于一个模型实例中的字段,最好定义一个 属性。例如,
class Thing( models.Model)
# Thing has height, width, depth fields
...
@property
def adjusted_volume(self):
return (self.height+10) * (self.width+10) * (self.depth+10)
在您的模板(实际上在您的代码中)中,您现在可以引用 {{ thing.adjusted_volume }}
,假设 thing
已明确包含在上下文中,或者通过 class-基于视图的 context_object_name="thing"
您的问题显示了一个示例,该示例将不限于单个对象实例的计算结果传递给模板,您可以在其中将其称为 {{ main}}
(但代码不正确,value
被反复计算然后循环丢掉,data_and_value
没有定义)。