Django:富文本框使用之tinymce

    xiaoxiao2024-11-15  72

    要在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>

    效果图如下

    最新回复(0)