要在Django中使用tinymce,首先需要安装django-tinymce
pip install django-tinymce然后在models里面引入HTMLField
form tinymce.models import HTMLField把需要用到富文本框的字段设置为HTMLField类型,我这里新建了一个models类,info字段设置为HTMLField类型。
class MessageInfo(models.Model): username = models.CharField(max_length=30, verbose_name='用户名') email = models.EmailField(blank=True, null=True, verbose_name='邮箱') subject = models.CharField(max_length=50, verbose_name='主题') info = HTMLField(verbose_name='信息') class Meta(): verbose_name = '信息' verbose_name_plural = verbose_name def __str__(self): return self.subject新建完model类之后进行数据迁移
python manage.py makemigrations python manage.py migrate在admin.py里面注册新建的model类
admin.site.register(MessageInfo)在settings里的INSTALLED_APPS注册tinymce,并且加入tinymce配置项
TINYMCE_JS_URL = "/static/tiny_mce/tiny_mce.js" TINYMCE_JS_ROOT = "/static/tiny_mce/" TINYMCE_DEFAULT_CONFIG = { 'theme': "advanced", 'width': 600, 'height': 400, }亲测前两条配置不用写也可以(Django 2.2.1)
admin里面的tinymce的富文本框的效果图如下 在自己的页面上使用富文本框需要在模板里面做以下配置
<script src="/static/tiny_mce/tiny_mce.js"></script> <script type="text/javascript"> tinyMCE.init({ 'mode': 'textareas', 'theme': 'simple', 'width': '100%', 'height': 100 }); </script>效果图如下