将TinyMCE与Django结合起来
TinyMCE是一个在线富文本编辑器,它具有完全的灵活性,并提供自定义功能。主要用于获取动态数据,如GFG中的文章等,他们没有静态数据库的帖子
安装–
要将其与Django网络应用程序或网站集成,你需要首先安装其pip库
pip install django-tinymce
与Django项目整合 –
在setting.py中添加tinyMCE作为单独的应用程序。
INSTALLED_APPS = [
...
'tinymce',
...
]
同时在settings.py中添加tinyMCE编辑器的默认配置
TINYMCE_DEFAULT_CONFIG = {
'cleanup_on_startup': True,
'custom_undo_redo_levels': 20,
'selector': 'textarea',
'theme': 'silver',
'plugins': '''
textcolor save link image media preview codesample contextmenu
table code lists fullscreen insertdatetime nonbreaking
contextmenu directionality searchreplace wordcount visualblocks
visualchars code fullscreen autolink lists charmap print hr
anchor pagebreak
''',
'toolbar1': '''
fullscreen preview bold italic underline | fontselect,
fontsizeselect | forecolor backcolor | alignleft alignright |
aligncenter alignjustify | indent outdent | bullist numlist table |
| link image media | codesample |
''',
'toolbar2': '''
visualblocks visualchars |
charmap hr pagebreak nonbreaking anchor | code |
''',
'contextmenu': 'formats | link image',
'menubar': True,
'statusbar': True,
}
在配置字典中,你可以通过改变数值来定制编辑器,如主题和更多。
设置TinyMCE已经完成,现在要把它带入行动,我们需要forms.py文件,其中要有一些必要的值,如输入字段的大小,它用于在html页面上显示内容。
from django import forms
from tinymce import TinyMCE
from .models import _your_model_
class TinyMCEWidget(TinyMCE):
def use_required_attribute(self, *args):
return False
class PostForm(forms.ModelForm):
content = forms.CharField(
widget=TinyMCEWidget(
attrs={'required': False, 'cols': 30, 'rows': 10}
)
)
class Meta:
model = _your_model_
fields = '__all__'
最后一步是为你的模型添加htmlfield,你也可以使用不同的字段,在他们的官方网站上查看。
...
from tinymce.models import HTMLField
class article(models.Model):
...
content = HTMLField()
这一切都准备好了,只需通过运行以下命令,在管理页面上看到变化,就可以进行迁移了。
python manage.py makemigrations
python manage.py migrate
现在在管理区通过运行服务器检查它
python manage.py runserver
输出 –
这里是它的外观,它可能有不同的外观。
管理区的编辑器