2010-10-14 91 views
7

我已经建立了TinyMCE的使用管理控制台的工作(根据Django文档http://code.djangoproject.com/wiki/AddWYSIWYGEditor指令)Django管理员:只添加TinyMCE到特定的TextField?

的问题是,我有内联和其他文本区我的模型内的,我不希望TinyMCE的渲染

有谁知道如何设置TinyMCE只为我的模型中的特定字段加载?

感谢

编辑 好了,我已经安装Django的TinyMCE的,并且设定

我已经创建了与我想补充的领域模型的admin.py以下TinyMCE的到:

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) 

不幸的是,这仍然是不工作

回答

9

右,如果有人要做到这一点(和是无能,因为我!)

首先确保TinyMCE的设置是正确的(我忽略了这个!)

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 

然后在你的模型的admins.py

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

临屋t维基页面大约五年(!),现在通过简单地使用django-tinymce项目就可以更容易地集成TinyMCE。

但是,既然您已经这样做了,您可以通过对textareas.js脚本的简单更改来实现所需的功能。您链接中描述的方法使用mode: textareas,正如您注意的那样,自动转换所有textareas。你想要的是这样的:

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

其中“id_mytextarea”,就是你要转换的字段的HTML ID - 由“ID_”为前缀的模型领域的一般名称。请参阅TinyMCE documentation

+0

哈哈,我实际上使用了django-docs(没有检查日期),虽然他们会更可靠。我已经安装了django-tinymce。我需要覆盖管理员表单模型并覆盖我想要使用TinyMCE小部件的字段? – 2010-10-14 10:41:54