是否可以使用 django 的自定义模板标签在模板的其他块中插入代码?

Posted

技术标签:

【中文标题】是否可以使用 django 的自定义模板标签在模板的其他块中插入代码?【英文标题】:Is it possible to use django's custom template tags to insert code in other blocks in the template? 【发布时间】:2012-11-17 10:48:12 【问题描述】:

我正在编写一个自定义模板标记,该标记用一些代码包装一个 html 元素以使其可编辑。这由一些 CSS 和负责将数据发送到服务器以保存数据的 JS 提供支持。

这个组件需要包含

    <script type="text/javascript" src="../myscript.js"></script>

在页面底部和

    <link rel="stylesheet" type="text/css" href="../mystyle.css">

在顶部。

我已经在页面模板中有两个“js”和“css”模板块。

我的问题 - 如果我的标签存在,自定义模板标签是否可以在相关页面块中包含这些脚本一次?

我输入的IE:

     % mytag % <div>editable element</div>  % endmytag %

并且“js”和“css”模板块被填充了相关的脚本\链接标签?

(我不想在每个页面中都预先包含这些,因为只有我的一些页面会使用这个标签)

【问题讨论】:

【参考方案1】:

您可以尝试在自定义标记呈现的模板中使用Django-Sekizai 将 CSS 和 JS 文件添加到另一个块,这正是 Sekizai 的设计目的。我在基于 Django-CMS 的项目中广泛使用它,但我还没有尝试过你的用例。

【讨论】:

以上是关于是否可以使用 django 的自定义模板标签在模板的其他块中插入代码?的主要内容,如果未能解决你的问题,请参考以下文章

Django将多个参数传递给If语句中的自定义模板过滤器

“模板语法错误:过滤器无效:”;基于 django 文档的自定义 django 模板过滤器损坏,但模板标签有效

django自定义模板标签和过滤器

我的自定义 Django 模板过滤器但没有任何其他过滤器的“无效过滤器”错误

你可以制作一个返回查询集的自定义模板标签吗?如果是,如何? - 姜戈

如何从 python 代码中调用 django 模板标签?