Это WYSIWYG редактор. Для django можно использовать например django-tinymce.
Вот ссылка на документацию:
https://django-tinymce.readthedocs.io/en/latest/index.html.
Коротко о том как установить:
pip install django-tinymce
- добавить в setting.py
Python:
INSTALLED_APPS = [
...
'tinymce',
]
- в admin.py примерно такой код:
Python:
from django.contrib import admin
from .models import Post
from tinymce.widgets import TinyMCE
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'body')
formfield_overrides = {
models.TextField: {'widget': TinyMCE(attrs={'cols': 80, 'rows': 30})},
}
в шаблонах чтобы выводить текст с html разметкой можно добавить фильтр safe, только это не безопасно и делать это можно только если статьи добавляются из админки, а не пользователями.
чтобы выводить просто текст без тегов используйте фильтр striptags
Python:
{{ post.body|striptags }}