Django模板过滤器、标签、简单标签和包含标签

8 浏览
0 Comments

Django模板过滤器、标签、简单标签和包含标签

这是一个关于这四种不同类型的Django标签之间区别的一般性问题。我刚刚阅读了关于模板标签的文档页面:http://docs.djangoproject.com/en/dev/howto/custom-template-tags/ 但我发现很难知道何时应该使用其中一种变体。例如,模板标签可以做什么简单标签不能做?过滤器是否只能操作字符串,这就是文档中说模板标签更强大的原因,因为它们可以“做任何事情”的原因?

下面是我对这些区别的理解:

  • 模板过滤器:仅对字符串进行操作并返回字符串。无法访问模型?
  • 模板标签:能够访问视图中可以访问的任何内容,编译为具有指定渲染函数的节点(似乎唯一的优点是可以向上下文添加变量?)
  • 简单标签:接受字符串和模板变量并返回字符串,你传递的是模板变量的值而不是变量本身(何时希望使用变量本身而不是其值?)
  • 包含标签:允许您渲染任意额外的模板。

有人能给出一个例子,说明何时应该使用其中一种而不是另一种吗?

谢谢。

0