【问题标题】:Using regular expression in Django templates在 Django 模板中使用正则表达式
【发布时间】:2012-09-25 12:11:30
【问题描述】:

我想知道是否可以在 Django 模板中使用正则表达式:

<a href="#{{form.deal_template_name.value}} ????" data-toggle="tab">{{form.deal_template_name.value}}</a>

我想用 _ 替换空格和点。 (否则链接会与目标有问题)

{{form.deal_template_name.value}}

.replace(/ /g,"_").replace(/\./g,"_")

如何直接在模板中做到这一点,这可能吗?

【问题讨论】:

  • 请退后一步考虑一下:模板接收准备好的数据,因此您传递给模板的内容应该已经收到代码中的更改。因此,只有在您确定有必要时才这样做。

标签: regex django django-templates


【解决方案1】:

如果你真的想在脚上开枪:

Custom django filter 这样做:

{% load replace %} {{ mystring|replace:"/l(u+)pin/m\1gen" }}

【讨论】:

  • 谢谢。为什么要朝自己的脚开枪?
  • 好吧,也许还不错:) Django 的做事方式 (tm) 是模板语言在设计上并不是一种完整的编程语言,您应该在视图中处理数据。因此,在您的代码中运行正则表达式将被视为尝试执行 php,例如混合 html 和业务逻辑代码。
  • 我实际上发现 Django 支持我想要实现的开箱即用 -> |slugify :) 但是知道如何在模板中实现正则表达式仍然很好。只是为了理解;如果我要坚持使用这个正则表达式,我将如何将.replace(/ /g,"_") 翻译成mystring|replace:"???"
  • 来自文档:{% load replace %} {{ mystring|replace:"/l(u+)pin/m\1gen" }} 所以:|replace:"/ /g,\"_ \""
猜你喜欢
  • 2015-09-02
  • 1970-01-01
  • 2012-07-26
  • 2021-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-09
相关资源
最近更新 更多