2009-08-11 29 views
10

Sé cómo usar WMD y otros editores de javascript similares en formularios regulares de django usando widget =. Sin embargo, ¿cómo uso WMD para campos de texto en el administrador de Django? Además de eso, ¿cómo lo uso para el campo de contenido en contrib.flatpages en el administrador?WMD en Django Admin?

Además, creo que me gustaría usar el tenedor StackOverflow de WMD, por lo que me gustaría recibir instrucciones especiales para eso, si es necesario.

Sé cómo usar el filtro de reducción en las plantillas, por lo que esa parte está bien. Solo necesito que el editor aparezca y trabaje en la interfaz de administración.

Respuesta

5

Dejé de intentar usar armas de destrucción masiva. En cambio, ¡utilicé Markitup! A partir del momento de esta publicación, la versión actual de WMD simplemente no está a la altura. La bifurcación de StackOverflow es mejor, pero le faltan muchas características que quiero.

En cambio, ¡decidí usar Markitup! Tiene una aplicación reutilizable de Django. También se integra muy bien con los filtros de plantilla django.contrib.markup existentes.

django-markitup

También encontré un sitio que muestra cómo usarlo para flatpages sin tener que editar las plantillas de administración.

extending admin forms in django

+1

Eso es una lástima, porque hemos creado django-wmd-editor: http://github.com/scrum8/django-wmd-editor –

+0

No estaba disponible en el momento en que lo necesitaba. – Apreche

+2

Enlace muerto jpartogi –

0

Esta no es una respuesta directa a su pregunta, pero podría ayudar.

Parece ser bastante común agregar el editor WYSIWYG TinyMCE a django. Si busca instrucciones sobre cómo agregar TinyMCE al administrador de Django, es posible que pueda adaptar el método para WMD.

En el libro Practical Django Projects, Second Edition, el autor incrusta TinyMCE en el administrador flatpages. Puede descargar el código de Bitbucket repository y ver cómo se hace (consulte cms/templates/admin /). Alternativamente, puedes probar this guide en el sitio web de Django.


+1 para la pregunta. También me gustaría escribir flatpages en el descuento. Sin embargo creo que el mejor método para el uso de rebajas es

  1. tienen dos campos, dicen content y content_html, y almacenar la reducción del precio original en content.
  2. Cuando se guarda el objeto, convierta el marcado a html y guárdelo en content_html.

Esto significa que evita la conversión a html en la plantilla cada vez que se visualiza la página. Sin embargo, no conozco una forma elegante de ampliar contrib.flatpages al "agregar" un campo adicional.

+0

Oh, vaya, esa es una idea muy inteligente, con dos campos. Obviamente, el campo HTML no sería editable. Sin embargo, creo que también podría almacenar en caché el HTML convertido y obtener casi los mismos beneficios en términos de rendimiento. – Apreche

2

Para insertar armas de destrucción masiva, o cualquier otro JS fresco, en las páginas de administración de Django, siga las instrucciones sobre la sustitución de las plantillas de administración en la documentación de Django, justo here - peor de los casos, deberá copiar y editar las plantillas de Django existentes para agregar su funcionalidad JS requerida, y use esas instrucciones para asegurarse de que se usen sus plantillas modificadas en lugar de las predeterminadas de Django, pero casi siempre puede hacerlo mejor que esto, como verá en esas instrucciones.