【问题标题】:What does "|" sign mean in a Django template?“|”是什么意思在 Django 模板中签名是什么意思?
【发布时间】:2010-09-29 20:34:19
【问题描述】:

我经常看到这样的事情: something.property|escape


something 是一个对象,property 是它的字符串属性。 escape - 我不知道 :)
这是什么意思?以及它使用的最小python版本是什么?


编辑:这个问题被问错了,它说“在 Python 中是什么意思”,所以按位或答案是正确的,但不相关,请不要对它们投反对票

【问题讨论】:

  • 如果您可以提供更多的上下文,而不仅仅是表达式,那将会很有帮助。这是一个可以重载的运算符。

标签: python django django-templates


【解决方案1】:

这是一个按位的“或”。如果属性不存在/为空,则表示转义。

【讨论】:

  • Paul,逻辑“或”运算符写作“或”。 “|”是按位的
【解决方案2】:

obj.property|escape 是应用escape filter in a template 的方法,它将HTML 转义该属性的字符串表示形式。

【讨论】:

  • 那么,something.property|escape == escape(something.property) ?
  • 嗯 - 很高兴这个答案有帮助,但从技术上讲这不是 python。
  • Dima,仅在模板中。并且仅在语义上相等,我不确定(也许有可能,因为我的 Django 生锈了)您实际上可以将它写成“escape(something.property)”。
  • 请在编辑问题时更加小心 — 原始问题的许多答案(“......在 Python 中的意思”)都被否决了,因为它们看起来不再相关。
  • 不,您不能在 Django 模板中以函数调用样式重写它。您必须使用管道。 Django 模板!= Python 代码。而且你不能以这种方式使用任何 Python 函数,它必须在该模板中加载的模板库中注册为模板过滤器。
【解决方案3】:

竖线字符表示要将左侧的结果发送到右侧定义的过滤器。过滤器将以某种方式修改该值。

“转义”过滤器只是众多过滤器之一。

内置过滤器列表可在此处找到: Django Documentation - Built-in filters reference

在 django 模板中,|字符绝对不是“按位或”运算符。

【讨论】:

  • "绝对不是'按位或'"。感谢您的澄清
猜你喜欢
  • 2016-04-28
  • 2011-08-12
  • 2017-06-11
  • 2018-03-05
  • 2023-03-27
  • 1970-01-01
  • 2016-08-17
  • 2010-12-28
  • 1970-01-01
相关资源
最近更新 更多