在djangocms模板中,如何使链接可从前端进行编辑?

时间:2019-03-21 18:35:25

标签: jinja2 django-cms

我正在研究Divio Django CMS Tutorial。一方面,模板中提供了静态链接:

            <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 %}

并在前端添加一个Link插件,但是我不断收到TemplateSyntax错误。

1 个答案:

答案 0 :(得分:0)

如果您使用的是static placeholder,则您的第二种方法将起作用。它们最适合网站的页眉/页脚,并允许您在所有模板中包含相同的标记,在一个位置进行编辑时,将在包含占位符的所有位置显示内容。您可以在开始标记和结束标记之间指定默认内容,类似于您在此处所做的操作。

不过,根据您的要求,我认为自定义模板和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')),
]