Django Admin:仅将TinyMCE添加到特定的TextField?

Tim*_*ony 8 django tinymce django-admin

我已经设置了TinyMCE来使用Admin面板(根据Django Docs http://code.djangoproject.com/wiki/AddWYSIWYGEditor中的说明)

问题是我在模型中有Inlines和其他文本区域,我不想让TinyMCE渲染

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

谢谢

编辑 好的,所以我安装了django-tinymce并对其进行了配置

我在模型的admin.py中创建了以下内容,其中包含我要添加的字段:

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)
Run Code Online (Sandbox Code Playgroud)

不幸的是,这仍然无效

Tim*_*ony 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
Run Code Online (Sandbox Code Playgroud)

然后在您的模型的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
Run Code Online (Sandbox Code Playgroud)


Dan*_*man 5

那个维基页面大约有五年了(!),现在通过简单地使用django-tinymce项目,可以更轻松地集成TinyMCE .

但是,由于您已经这样做了,只需对textareas.js脚本进行简单的更改即可实现所需.链接中描述的方法使用mode: textareas,当您注意到时,会自动转换所有textareas.你想要的是这个:

mode: "exact",
element: "id_mytextarea",
Run Code Online (Sandbox Code Playgroud)

其中"id_mytextarea"是您要转换的字段的HTML ID - 通常是前缀为"id_"的模型字段的名称.请参阅TinyMCE文档.