Я считаю, что в Django CMS очистка HTML происходит перед слоем Django Template. Я заглянул в свою базу данных и обнаружил, что тег "" в моем HTML очищается.
Я думаю, что это происходит на уровне Plugin (фраза, которую Django CMS использует для своих битов контента). Я предполагаю, что для добавления HTML вы используете Текстовый плагин . Рассматривая источник для метода clean
модели плагина Text :
def clean(self):
self.body = clean_html(self.body, full=False)
Он вызывает cms.utils.clean_html
, который, в свою очередь, использует html5lib
для очистки HTML.
Одним из способов решения этой проблемы является создание пользовательского плагина , который наследуется от плагина Text
и повторно реализует метод clean
, который не выполняет эту очистку.