Вы должны использовать внешнюю библиотеку для текстового редактора.Есть много доступных текстовых редакторов.Давайте возьмем DJANGO-CKEDITOR в качестве примера
Установка
- Установите или добавьте django-ckeditor в ваш путь к Python.
pip install django-ckeditor
Добавьте ckeditor к вашей настройке INSTALLED_APPS
.
Выполните команду управления collectstatic: $ ./manage.py collectstatic
.Это скопирует статические CKEditor необходимые медиаресурсы в каталог, заданный параметром STATIC_ROOT
.
добавьте его в settings.py
CKEDITOR_BASEPATH = "/my_static/ckeditor/ckeditor/"
CKEDITOR_UPLOAD_PATH = "uploads/"
Добавьте URL CKEditor в файл
urls.py
вашего проекта:
url(r'^ckeditor/', include('ckeditor_uploader.urls')),
В вашем models.py измените тело поля с
TextField()
на
RichTextField()
from django.db import models
from ckeditor.fields import RichTextField
# Create your models here.
class Post(models.Model):
title = models.CharField(max_length=256)
pub_date = models.DateTimeField()
image = models.ImageField(upload_to='media/')
body = models.RichTextField()
Выполнить python.manage.py makemigrations
и python.manage.py migrate
Наконец в вашем admin.py
файле
from django import forms
from django.contrib import admin
from ckeditor.widgets import CKEditorWidget
from .models import Post
class PostAdminForm(forms.ModelForm):
content = forms.CharField(widget=CKEditorWidget())
class Meta:
model = Post
fields = '__all__'
class PostAdmin(admin.ModelAdmin):
form = PostAdminForm
admin.site.register(Post, PostAdmin)