Как я могу предотвратить выход 't-out' из моего HTML-кода?
Как я могу предотвратить экранирование моего HTML-кода?
Я пытаюсь отобразить HTML-код на своем веб-сайте. В старых версиях Odoo, которые я использовал, все работало нормально. Теперь в Odoo 16 устарела и это путь. Но всегда экранирует мой код и отображает его в виде текста на моем сайте.
Это мой старый код сt-raw
:
<div class="row">
<t t-raw="html_output"/>
</div>
Вот мой новый код с:
<div class="row">
<t t-out="html_output"/>
</div>
Как я могу остановитьсяt-out
от экранирования моего HTML-кода?
2 ответа
Согласно шаблонам QWeb Odoo 16: расширенная разметка ,
По умолчанию,
out
должен ли HTML-экранировать контент, который необходимо экранировать, защищая систему от XSS
В документации есть несколько примеров, но у меня недостаточно контекста вашего вопроса, чтобы точно знать, какой из них применим, поэтому я сделаю пару предположений.
Python: если ваша переменная не является полем.Html, вам следует изменить ее на одну из вашей модели.
html_output = fields.Html()
JavaScript: если вашhtml_output
переменная создается в браузере, то ее следует обернуть в разметку.
const { Markup } = require("web.utils");
// ...in some method prior to rendering
html_output = Markup(html_output);
Возникла та же проблема, при отображении html-содержимое помещается в кавычки.