TinyMCE es un editor de texto enriquecido en línea que es totalmente flexible y ofrece personalización. se utiliza principalmente para obtener datos dinámicos, como artículos en GFG y mucho más, no hay una base de datos estática para publicaciones
Instalación –
Para integrarlo con la aplicación web o el sitio web de Django, primero debe instalar su biblioteca pip
pip install django-tinymce
Integrar con el Proyecto Django –
agregue tinyMCE como aplicación individual en setting.py
INSTALLED_APPS = [ ... 'tinymce', ... ]
También agregue la configuración predeterminada para el editor tinyMCE en settings.py
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, }
aquí, en el diccionario de configuración, puede personalizar el editor cambiando valores como el tema y muchos más.
la configuración de TinyMCE está hecha ahora para ponerlo en acción, necesitamos el archivo Forms.py con algunos valores requeridos, como el tamaño necesario del campo de entrada, se usa al mostrar el contenido en la página 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__'
El último paso es agregar htmlfield a su modelo, también puede usar diferentes campos, échales un vistazo en su sitio web oficial.
... from tinymce.models import HTMLField class article(models.Model): ... content = HTMLField()
Y todo listo, solo haga migraciones para ver los cambios en la página de administración ejecutando los siguientes comandos
python manage.py makemigrations
python manage.py migrate
Ahora verifíquelo en el área de administración ejecutando el servidor
python manage.py runserver
Producción –
aquí cómo se verá puede tener una apariencia diferente