2014-09-03 39 views
0

我想知道在使用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

你不应该关心这个原因的性能,你不会通过使用模型方法获得太多的收益。但是,如果你这样做,这取决于你正在使用的模板引擎。

现在,如何选择实现一个过滤器或模型方法?这取决于你想要什么。

如果你想标题为一个字符串,这很可能是一个过滤器。因为它与模型无关,只是一个字符串。再加上你的过滤器将是非常可重用的。

从现在开始,如果您必须处理与模型有关的函数,则应该使用模型方法。

请记住,只需使用Jinja 2即可加速生成模板。