我想知道在django模板中使用过滤器和使用模型中的函数格式化输出之间是否存在性能差异?
假设您有以下型号:
class Example(models.Model):
name = models.CharField(max_length=20)
def get_name(self):
return self.name.title()
在模板中,我想调用模型并使用大写字母获取名称。
其中哪一项最佳(如果有的话)可以表现出来?
{{ example.name|title }}
{{ example.get_name }}
我想这可能不是一个很大的区别,但是有桌子显示数百个项目,有什么可以获得的吗?
答案 0 :(得分:0)
你不应该关心这个原因的表现,因为你使用模型方法不会获得太多收益。但是如果你这样做,这取决于你正在使用的模板引擎。
现在,如何选择实现过滤器或模型方法?这取决于你想要什么。
如果你想标题一个字符串,这很可能是一个过滤器。因为它与模型无关,只是一个字符串。此外,您的过滤器将非常可重复使用。
从现在开始,如果你必须处理与模型相关的函数,你应该使用模型方法。
请注意,只需使用Jinja 2即可加快模板生成速度。