【问题标题】:Teleport - django custom tagTeleport - django 自定义标签
【发布时间】:2010-10-10 07:18:49
【问题描述】:

请帮助一个 django 自定义标签。请分析一下!

想法:

  1. 在任何模板(父或子)中,我们安装一个标签 {{ telepoint "head" }},带有名称,这样的推杆可能不止一个。

  2. 在另一边,我们有块

    {{ teleputter "head" "unique-name" }} some html {{ teleputterend }} 
    

    此块的内容以适当的远程点名称转到远程点。

【问题讨论】:

  • 目前还不清楚您要完成什么。请详细说明。
  • 我正在尝试做类似于继承 {{ extend }} 功能,但对于 {{ include }} 模板,并且有可能向一个容器发送不是一个,而是多个块
  • 所以在模板中你会有一个 {{telepoint}} 标签并且这个标签会被替换为 {{teleputter}} 中的内容?还是我还缺少什么?
  • 你理解的没错,但是替换为所有的远程推杆连接的内容。

标签: django django-templates django-custom-tags


【解决方案1】:

这听起来像是您正在尝试实现模板继承: http://docs.djangoproject.com/en/dev/topics/templates/#id1

阅读完整文档以获得最佳解释。读者文摘版本如下。

基本上你有一个带有默认值的内容块的基本模板:

base.html
{% block  head %} "Default html goes here"  {% endblock %}

接下来您创建另一个扩展基本模板的模板并构建您想要替换的块:

anotherTemplate.html
{% extends "base.html %}
{% block  head %} "This replaces the html in the base head block"  {% endblock %}

听起来你的“telepoint”是基本模板中的一个块,而你的“teleputter”是一个扩展基本模板的块

这听起来像你想要做的吗?你试图实现的有什么不同吗?

【讨论】:

  • 我已经说过,它看起来像继承,但它不是差异:1. Teleputter - 可以从添加为包含的模板中找到 Telepoint 2. 继承中的块只能填充一次 3. 继承意味着我将只使用一个子模板,但我会使用我将包含的组件
猜你喜欢
  • 2012-07-07
  • 2011-07-11
  • 2011-03-03
  • 2011-09-16
  • 2021-07-13
  • 2020-01-24
  • 2011-12-19
  • 2011-01-23
相关资源
最近更新 更多