这个 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 模板标签是啥?的主要内容,如果未能解决你的问题,请参考以下文章