Как сохранить html-теги с текстом в базу данных? django & react

Я использую CKEditor для ввода текста и сохранения в базе данных. Когда я извлекаю описание, оно также показывает html теги p, которые мне не нужны. Как я могу сохранить его в базе данных так, чтобы теги p не отображались, но теги типа p все еще применялись. По сути, я хочу сохранить его как html, а не как текст. Есть ли способ сделать это? В настоящее время я использую TextField для хранения описания.

Вы можете переопределить метод сохранения модели. например, всякий раз, когда объект создается или обновляется. Вы просто заменяете тег

, используя regex, а также можете использовать дополнительные теги с помощью regex .

Пример:

def save(instance):

    instance.html = instance.html.replace("<p>","<div>").replace("</p>","</div>")

Вы также можете использовать regex вместо функции replace .

  • Вы также можете сохранить этот вывод replace или regex в другое поле и показать это измененное html-содержимое на сайте
  • .

Для этого следует использовать HTMLField [Django-doc]: from django.db import models

class MyModel(models.Model): description = models.HTMLField() Это сохранит HTML в базе данных и отобразит его как HTML, когда вы получите объект. Обычно HTMLField санирует HTML для предотвращения XSS-атак, но вы можете отключить это с помощью параметра: description = models.HTMLField(sanitize=False) в случае, если вы хотите разрешить произвольный HTML. Обратите внимание, что HTMLField - это TextField под капотом, он просто использует специальный виджет формы (AdminHTMLWidget [GitHub]) и сериализацию на уровне ORM.

Вернуться на верх