Ваш второй подход сработал бы, если бы вы использовали статический заполнитель .Они лучше всего подходят для верхних и нижних колонтитулов сайта и позволяют включать одинаковую разметку во все шаблоны, которые при редактировании в одном месте будут отображать содержимое везде, где включен заполнитель.Вы можете указать содержимое по умолчанию между начальным и конечным тегами, аналогично тому, что вы там сделали.
Однако с тем, что вы спрашиваете, я думаю, что пользовательский шаблон и плагин 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')),
]