jinja2 - 在 djangocms 模板中,如何使链接可从前端编辑?
问题描述
我正在阅读Divio Django CMS 教程。有一次,模板中提供了一个静态链接:
<a href="#">
<span class="fa-stack fa-lg">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-github fa-stack-1x fa-inverse"></i>
</span>
</a>
(base.html),我想从 CMS 前端编辑此链接。所以我正在尝试类似的东西:
{% placeholder "githublink" %}
<a href="#">
<span class="fa-stack fa-lg">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-github fa-stack-1x fa-inverse"></i>
</span>
</a>
{% endplaceholder %}
并在前端添加一个链接插件,但我不断收到模板语法错误。
解决方案
如果您使用的是静态占位符,您的第二种方法将起作用。它们最适合网站页眉/页脚,并允许您在所有模板中包含相同的标记,当在一个地方编辑时,将在包含占位符的任何地方显示内容。您可以在开始和结束标记之间指定默认内容,类似于您在此处所做的。
但是,根据您的要求,我认为自定义模板和djangocms_link
插件效果最好。所以你可能只是包含{% placeholder "links" %}
在一个模板中。这会呈现一个占位符,您可以向其中添加链接插件。
然后,您可以包含一个自定义模板,以使用您自己的标记呈现您的链接,并在创建插件时指定该模板。创建模板;
templates/djangocms_link/fa-markup/link.html
<a href="{{ link }}"{% if instance.target %} target="{{ instance.target }}"{% endif %}>
<span class="fa-stack fa-lg">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-github fa-stack-1x fa-inverse"></i>
</span>
</a>
然后将模板添加到您的设置中;
DJANGOCMS_LINK_TEMPLATES = [
('fa-markup', _('Font Awesome Version')),
]
推荐阅读
- spring - 如何将 Spring Data JPA 存储库实体映射到视图模型?
- oracle - oracle 中的多列索引是如何工作的?
- http - wget 说 406 不可接受
- redis - Redis:有没有办法让Keyspace有所不同
- excel - 结果中的numpy数组点错误
- vba - Excel VBA:自动将宏应用于单元格
- typo3 - tx_news 中内容元素的翻译显示默认语言
- python - 如何计算两个 .txt 文件之间的 Levenshtein 距离?
- ios - 使用 use_frameworks 后找不到 -lNSLogger 的库
- java - 无法从 jms activemq 队列中删除消息