【问题标题】:Django Admin: Add TinyMCE to particular TextField only?Django Admin:仅将 TinyMCE 添加到特定的 TextField?
【发布时间】:2010-10-14 10:09:22
【问题描述】:

我已设置 TinyMCE 以使用管理面板(按照 Django 文档http://code.djangoproject.com/wiki/AddWYSIWYGEditor 中的说明)

问题是我的模型中有内联和其他文本区域,我不希望 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)

不幸的是,这仍然不起作用

【问题讨论】:

    标签: django django-admin tinymce


    【解决方案1】:

    好的,如果有人想要这样做:

    首先确保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
    

    【讨论】:

    • from django import forms 在你的情况下
    【解决方案2】:

    那个 wiki 页面大约有 5 年的历史了(!),现在有一种更简单的方法来集成 TinyMCE,只需使用 django-tinymce 项目。

    但是,由于您已经这样做了,您可以通过对 textareas.js 脚本进行简单更改来实现您想要的。您链接中描述的方法使用mode: textareas,正如您所注意到的,它会自动转换所有文本区域。你想要的是这样的:

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

    其中“id_mytextarea”是您要转换的字段的 HTML ID - 通常是以“id_”为前缀的模型字段的名称。见TinyMCE documentation

    【讨论】:

    • 哈哈,我实际上使用了 django-docs(不检查日期),因为我认为它们会更可靠。我现在已经安装了 django-tinymce。我需要覆盖管理表单模型并覆盖我想使用 TinyMCE 小部件的字段?
    猜你喜欢
    • 1970-01-01
    • 2019-10-12
    • 2011-03-28
    • 2018-10-13
    • 2011-05-07
    • 2018-03-05
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    相关资源
    最近更新 更多