Как добавить динамическую ссылку {% url 'url_name'%} внутри текстового поля от Admin, используя Django-tinymce4-lite? - PullRequest
0 голосов
/ 12 апреля 2019

ТАК tinymce4 lie позволяет мне перейти по ссылке, но когда я вхожу {% url 'somelink'%}, она не отображается правильно.

Например, если моя модель отображается на странице финансов, и я ввожу ссылку "2", ссылка будет переходить на финансы / 2.

Я хочу использовать функциональность django {% url%} внутри tinymce4-lie.

Любое предложение.

Я пытался вставить ссылку, но она не была правильно отображена

1 Ответ

1 голос
/ 13 мая 2019

Этот пост, тэг шаблона render_as_template , может помочь вам достичь этого, но имейте в виду, что в зависимости от того, что вы делаете, это может вызвать проблему безопасности, потому что на самом деле вы хотите внедрить кодвставленный пользователем (или администратором в вашем случае) на ваш сайт.

Поэтому вы будете обходить любые фильтры межсайтового скриптинга и т. д., предоставляемые Django.

Если вы просто хотитеЧтобы включить ссылку, вы должны пометить переменную как safe в вашем шаблоне.т. е. {{ link_variable | safe }}.

Если вы хотите более безопасный подход, вы можете просто сохранить route_name и id в двух разных значениях db и отобразить ссылку <a href="{% url route_name the_id_of_the_model %}">the link </a> в вашем шаблоне.

* 1013И, наконец, что не менее важно, вы можете написать свой собственный тег шаблона.Предполагая, что вы хотите сохранить что-то вроде «link_to model 4» и «link_to testpage».Затем вы можете просто передать содержимое в свой собственный тег шаблона, где вы разбиваете строку и вычисляете URL, используя функцию reverse или reverse_lazy Django.После этого вы можете снова сделать его помеченным как безопасный (здесь вам нужно вызвать функцию mark_safe - для получения дополнительной информации см. docs.djangoproject.com / ru / 2.2 / howto / custom-template-tags ).
...