【问题标题】:Factor a small piece of HTML [django]分解一小段 HTML [django]
【发布时间】:2012-08-21 07:14:23
【问题描述】:

我可以用 Django 模板分解一小段 html 代码吗?

例如,我有很多这样的图像:

<img src="/xxxx/xxxx/xxxxxx.jpg">

我可以用 {{ image_xxx }} 替换它吗?

【问题讨论】:

  • 是的,但是除了审美原因之外,还有什么特殊需要吗?
  • 任何解决方案都不会让您的模板更快(因为处理变量/标签需要时间)。

标签: django templates django-templates


【解决方案1】:

创建custom template tag

from django import template

register = template.Library()

@register.simple_tag
def image_by_value(value):
    return "/xxxx/xxxx/xxxxxx.jpg"

您可以在模板中使用它,如下所示:

<img src="{% image_by_value 001 %}">

然后将值001 传递给变量value,您可以使用它来构造包含图像路径的字符串(即"/xxxx/xxxx/xxxxxx.jpg")。

【讨论】:

  • 我宁愿使用包含标签 - 并在标签中呈现实际的 html。
  • 我这样使用它:{ image_by_value|img } ?
  • @Kimvais:如果 HTML 变得更复杂,那么使用包含标记是有意义的。如果构建图像路径有其他逻辑,那么您最终会在包含模板中使用该逻辑,这并不理想。
  • @cedric.salaun:这是过滤器的语法 - 上面的解决方案是使用 {% ... %} 的模板标签。
  • 它工作正常!我返回完整的 img ( return "" ) 它更简单。我在每个页面中都有很多图标,这是很好的解决方案。
【解决方案2】:

是的。我建议为它创建一个custom template tag。请参阅关于包含标签的部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 2023-03-27
    • 2014-01-16
    • 2015-10-21
    相关资源
    最近更新 更多