gpt4 book ai didi

python - 使用模板中的 Django 模型方法

转载 作者:行者123 更新时间:2023-12-02 04:19:49 26 4
gpt4 key购买 nike

我有一个这样的模型:

class Car(models.Model):
parentType = models.ForeignKey("self", null=True,blank=True)
engine = models.TextField (null=True)

一辆汽车可以有一个发动机,也可以是另一辆具有相同发动机的汽车的变体。现在我有一个像这样的访问器:

def GetEngine(self):
if self.parentType:
return self.parentType.GetEngine()
return self.engine

但是对于模板来说,这很快就会变得丑陋,因为我需要一个属性来访问(无法调用该函数),然后我最终会得到与字段命名几乎相同的属性。有没有办法直接在 Django 中表达上述行为?

最佳答案

如果模型方法不接受参数(除了 self),它会在使用此语法的模板中正常工作(注意没有括号)

{{ car.GetEngine }}

用属性/setter/getter 掩盖模型字段的更普遍的问题更加困难并且容易出现警告,引用 https://code.djangoproject.com/ticket/3148

当发生这种情况时,除非它是一个大问题,否则您可能只想使用不同的属性名称或模板标记等

关于python - 使用模板中的 Django 模型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31359165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com