tiny source open mce python django admin

python - source - ¿Reemplazar textarea con el editor de texto enriquecido en Django Admin?



wysiwyg editor free (7)

Me gustaría saber la mejor manera de reemplazar un campo de texto estándar con un editor de texto enriquecido en Django Admin?


Hay una aplicación complementaria de Django para proporcionar compatibilidad con TinyMCE para los formularios de administración de Django sin tener que perder el tiempo con las plantillas de administración o las nuevas piezas internas de Django.


Eche un vistazo a este fragmento : la idea básica es incluir JS personalizado en las definiciones de administrador que reemplazarán las áreas de texto estándar con el editor de texto enriquecido.

Para jQuery / FCKEditor, tal JS podría verse así:

$(document).ready(function() { $("textarea").each(function(n, obj) { fck = new FCKeditor(obj.id) ; fck.BasePath = "/admin-media/fckeditor/" ; fck.ReplaceTextarea() ; }); });



Yo diría: defina su propia clase ModelAdmin y sobrescriba el widget utilizado para un campo particular, como:

class ArticleAdminModelForm(forms.ModelForm): description = forms.CharField(widget=widgets.AdminWYMEditor) class Meta: model = models.Article

(AdminWYMEditor es una subclase forms.Textarea que agrega WYMEditor con configuración específica para la aplicación de administración Django).

Vea esta publicación del blog de Jannis Leidel para ver cómo se puede implementar este widget.


class KindEditor(forms.Textarea): class Media: css ={ ''all'':(settings.STATIC_ROOT + ''editor/themes/default/default.css'',) } js = (settings.STATIC_ROOT + ''editor/kindeditor-min.js'',settings.STATIC_ROOT + ''editor/lang/zh_CN.js'',) def __init__(self): attrs = {} attrs[''rel''] = ''kind'' super(KindEditor, self).__init__(attrs) class NewsAdminForm(forms.ModelForm): pass class Meta: model = News widgets = { ''body'':KindEditor() } class NewsAdmin(admin.ModelAdmin): form = NewsAdminForm admin.site.register(News, NewsAdmin)


Ok, para actualizar un poco esta publicación, diría que la forma más fácil de implementar TinyMCE es usar la aplicación django-tinymce . También debe descargar los archivos JS de la página TinyMCE . Recibí algunos errores con la integración de django, pero descargar los paquetes de idioma de TinyMCE debe ser suficiente.