NicEdit no Admin do Django
Postado em: Setembro 4, 2008
Tags:
django,
python
Depois de muito tempo sem postar algo aqui, devido a trabalho, faculdade e vícios em geral, eu resolvi fazer um pequeno tutorial de como usar um WYSIWYG, o que eu usarei neste artigo e que gostei muito dele é o NicEdit
http://nicedit.com [nicedit.com], ele é leve e bem pratico, e fácil de incorporar ao admin do Django.
O NicEdit é constituído de dois arquivos, o
nicEdit.js e o
nicEditorIcons.gif nos quais você deve telos em sua pasta media, geralmente em
media/js.
Em seu arquivo
admin.py (lembrando que esse somente é usado na versão 1.x do django) acrescente o
nicEdit.js como o exemplo a baixo.
class SeuModeloAdmin(admin.ModelAdmin):
class Media:
js = ('js/nicEdit.js',
'js/nicConf_seumodelo.js',)
Bom você deve ter reparado um arquivo a mais, o
nicConf_seumodelo.js, bom esse arquivo eu criei ele com esse nome, você pode cria-lo com o nome que quiser, o motivo desse arquivo é especificar em quais textareas o nicedit vai atuar, vamos ao exemplo do arquivo.
bkLib.onDomLoaded(function() {
new nicEditor({
iconsPath : '/media/js/nicEditorIcons.gif',
fullPanel : true
}).panelInstance('id_sua_textarea');
});
Esse código diz ao nicedit que ao carregar a página ele deve adicionar seus recursos ao topo do textarea, nesse caso eu especifico o arquivo contendo as imagens dos ícones do painel que ele ira adicionar, se conterá todas as opções e por fim qual textarea ele devera fazer essas alterações. Os campos adicionados pelo newforms (forms) normalmente são atribuídos com a seguinte ID
id_campo_do_model por exemplo
id_comentarios.
Muito simples e bem útil, espero que aproveitem.
Até a próxima!
Grande post! Não conhecia esse NicEdit! O jeito que tinha dado para colocar um editor richtext num site Django era pegar um código de Javascript e criar uma página específica para criação de posts. Valeu pela dica, T+
Érico em Novembro 10, 2008
Rs Nunca me dei com js.
to tentando aqiu e nada.
copiei os arquivos para minha pasta JS dentro do media.
admin.py
class FraseAdmin(admin.ModelAdmin):
___pass
___class Media:
______js = ('/js/nicEdit.js',
_________js/nicConf_frase.js',)_
___list_display = ('frase', 'autor')
___search_fields = ['auto']
admin.site.register(Frase, FraseAdmin)
nicConf_frase.js
como esta acima, só que com o meu id do textarea id_frase
Klaus Laube em Janeiro 7, 2009
Olá Rafael!
Grande post! Utilizo hoje o TinyMCE como WYSIWYG... mas adorei o serviço de upload com o ImageShack do NicEdit, genial!