Django Admin: Add TinyMCE to particular TextField only?
Right, if anyone is looking to do this:
First make sure the tinymce settings are correct:
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
Then in the admins.py of your model
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
That wiki page is about five years old (!) and these days there's a much easier way of integrating TinyMCE, by simply using the django-tinymce project.
However, since you've already done it this way, you can achieve what you want with a simple change to the textareas.js script. The method described at your link uses mode: textareas
, which as you note converts all textareas automatically. What you want is this:
mode: "exact",
element: "id_mytextarea",
where "id_mytextarea" is the HTML ID of the field you do want to convert - usually the name of the model field prefixed by "id_". See the TinyMCE documentation.