J'aimerais connaître la meilleure façon de remplacer un champ textarea standard par un éditeur de texte riche dans Django Admin ?
Réponses
Trop de publicités?Il y a un application Django complémentaire pour fournir TinyMCE prise en charge des formulaires d'administration de Django sans avoir à s'embrouiller avec les modèles d'administration ou les internes des nouveaux formulaires de Django.
Jetez un coup d'œil à ceci extrait - L'idée de base est d'inclure un JS personnalisé dans vos définitions d'administration qui remplacera les zones de texte standard par un éditeur de texte riche.
Pour jQuery/FCKEditor, un tel JS pourrait ressembler à ceci :
$(document).ready(function() {
$("textarea").each(function(n, obj) {
fck = new FCKeditor(obj.id) ;
fck.BasePath = "/admin-media/fckeditor/" ;
fck.ReplaceTextarea() ;
});
});
Je dirais : définissez votre propre classe ModelAdmin et écrasez le widget utilisé pour un champ particulier, par exemple :
class ArticleAdminModelForm(forms.ModelForm):
description = forms.CharField(widget=widgets.AdminWYMEditor)
class Meta:
model = models.Article
(AdminWYMEditor est un forms.Textarea
qui ajoute le WYMEditor avec une configuration spécifique à l'application d'administration de Django).
Ver ce blog post par Jannis Leidel pour voir comment ce widget peut être mis en œuvre.
A la date du post et des réponses, TinyMCE était assez populaire (comme il l'est probablement encore aujourd'hui). Mais après un certain temps, ckeditor est apparu et beaucoup le considèrent comme une meilleure alternative, y compris de nombreux utilisateurs de SO :
Comparer TinyMCE et CKeditor pour un Wiki
http://www.turnkeylinux.org/blog/tinymce-vs-ckeditor
Il y a aussi une revue de 2013 des éditeurs de WISIWYG avec Django en russe :
Ok, pour mettre à jour un peu ce post, je dirais que la manière la plus simple d'implémenter TinyMCE est d'utiliser la fonction django-tinymce app. Vous devez également télécharger les fichiers JS à partir de la page Page TinyMCE . J'ai eu quelques erreurs avec l'internationalisation de django, mais télécharger les packs de langues depuis le TinyMCE doit être suffisant.
- Réponses précédentes
- Plus de réponses