2010-10-14 9 views
7

que han establecido TinyMCE para trabajar con el panel de administración (según las instrucciones del Django Docs http://code.djangoproject.com/wiki/AddWYSIWYGEditor)Administrador de Django: ¿Agregar TinyMCE solo a un campo de texto en particular?

El problema es que tengo inlines y otras áreas de texto dentro de mi modelo para el cual no quiero TinyMCE para representar

¿Alguien sabe cómo configurar TinyMCE solo para cargar campos específicos dentro de mi modelo?

Gracias

EDIT Ok, así que he instalado Django-tinymce y configurado para que

He creado el siguiente en el admin.py del modelo con el campo Quiero añadir tinymce a:

class FooAdminForm(forms.ModelForm): 
    class Meta: 
     model = Foo 

    def __init__(self, *args, **kwards): 
     self.bar = forms.TextField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30})) 
     super(FooAdminForm, self).__init__(*args, **kwargs) 

Desafortunadamente esto todavía no está funcionando

Respuesta

9

derecho, si alguien está buscando para hacer esto (y es tan perdido como yo!)

En primer lugar asegúrese de que los ajustes de TinyMCE son correctos (descuidé esto!)

TINYMCE_JS_ROOT = '/media/tiny_mce/' 
TINYMCE_JS_URL = os.path.join(MEDIA_URL, "tiny_mce/tiny_mce_src.js") 
TINYMCE_DEFAULT_CONFIG = { 
    'plugins': "table,spellchecker,paste,searchreplace", 
    'theme': "advanced", 
} 
TINYMCE_SPELLCHECKER = True 

Luego, en el administrador.py de su modelo

from django.forms import * 
from django.db.models import * 
from tinymce.widgets import TinyMCE 

class ProductionForm(forms.ModelForm): 
    some_field = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10})) 

    class Meta: 
     model = Production 

class ProductionAdmin(admin.ModelAdmin): 
    form = ProductionForm 
5

Tha La página wiki tiene unos cinco años (!) y en estos días hay una forma mucho más sencilla de integrar TinyMCE, simplemente usando el proyecto django-tinymce.

Sin embargo, como ya lo ha hecho de esta manera, puede lograr lo que quiera con un simple cambio en el script textareas.js. El método descrito en su enlace usa mode: textareas, que como nota, convierte todas las áreas de texto automáticamente. Lo que se quiere es la siguiente:

mode: "exact", 
element: "id_mytextarea", 

donde "id_mytextarea" es el ID de HTML del campo que usted desea convertir - por lo general el nombre del campo del modelo con el prefijo "ID_". Vea el TinyMCE documentation.

+0

jaja, de hecho utilicé los django-docs (sin verificar la fecha) ya que pensé que serían más confiables. He instalado django-tinymce ahora. Necesito sobreescribir el modelo de formulario de administrador y sobrescribir el campo Quiero usar el widget TinyMCE? –

Cuestiones relacionadas