这个 Django 模板标签是啥?

Posted

技术标签:

【中文标题】这个 Django 模板标签是啥?【英文标题】:What is this Django template tag?这个 Django 模板标签是什么? 【发布时间】:2014-06-14 07:13:17 【问题描述】:

我正在使用 Django,在基本模板中我看到:% get_cms_html_fragment "html/footer" %

从周围的语法我可以很容易地得出结论,这是某种页脚包含。但是,它不遵循 Django 模板中通常使用的 % block headerexample %% endblock % 的传统语法。有人认识这个吗?

【问题讨论】:

【参考方案1】:

这是a template tag 的语法。仅供参考,block 是 built-in template tags 之一,get_cms_html_fragment 是自定义的。

自定义模板标签和过滤器通过load内置模板标签加载。

另见:

Django: what does "load" do (in a template file)?

【讨论】:

是否有一个共同的地方定义了这个自定义标签,以便我可以编辑它并查看它的作用?我的模板中的 load 标记与我的 templatetags 目录中的任何文件名都不对应。 % load cms_html_api % 位于模板顶部。 @jefffabiny 好的,然后有cms_html_api 应用程序引入了get_cms_html_fragment 标签,检查一下。 有几个不同的设置文件集成在一起,在已安装的应用程序部分中没有一个有cms_html_api。有一个看起来相关的声明:CMS_HTML_API_BASE_URL ='http://internal.network/the_api/content_fragment/' @jefffabiny 好吧,这个设置对我来说很陌生,它可能是您的内部自定义应用程序之一。您能否显示您的INSTALLED_APPS 设置和pip freeze 命令的结果(如果您正在使用它,则在虚拟环境中)?【参考方案2】:

在 Django 中,您可以轻松创建自定义标签。所以它可以是这个非常特定于项目的标签。 https://docs.djangoproject.com/en/dev/howto/custom-template-tags/

【讨论】:

以上是关于这个 Django 模板标签是啥?的主要内容,如果未能解决你的问题,请参考以下文章

模板标签模板中的 Django 模板块

django如何使用模板标签

Django模板,向模板标签发送两个参数?

Django 自定义模板标签和模板加载器

django'url'模板标签错误

JQuery 在 Django 自定义模板标签的模板中不起作用