Как я могу предотвратить выход '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-содержимое помещается в кавычки.

Другие вопросы по тегам