【问题标题】:django: disable tinymce for one certain fielddjango:为某个字段禁用 tinymce
【发布时间】:2015-06-14 17:36:26
【问题描述】:

我有很多模型默认为 TextFields 启用了 tinymce(django-tinymce),这没关系。 但是对于一个领域,我不想应用 tinymce 小部件(在管理界面中)。 请告诉我如何实现它?

    class Page(models.Model):
        one = models.TextField()
        two = models.TextField()
        three = models.TextField()

【问题讨论】:

    标签: python django tinymce field


    【解决方案1】:

    是的,在您的TinyMCE.init() 中,您会这样做:

    tinyMCE.init({
            ...
            editor_deselector : "mceNoEditor"
    });
    

    并将 mceNoEditor 类添加到您要禁用 tinymce 的文本区域。

    这里是relevant documentation

    在您的示例中,如果您想在 three 上禁用它,

    three = models.TextField(widget=form.Textarea(attrs={"class": "mceNoEditor"}))
    

    【讨论】:

    • 谢谢!我明白了。刚刚添加: from django import forms class PageForm(forms.ModelForm): three = forms.Textarea(attrs={"class": "mceNoEditor"}) class PageAdmin(TinyMCEAdmin): model = Page form = PageForm
    【解决方案2】:

    首先确保正确配置 tinymce 设置。

    tinymce.init({
             editor_deselector : /(highlight|disablemce)/
     })
    

    在我的情况下,“editor_deselector”具有上述选项。

    使用管理表单禁用特定文本字段的 tinymce 选项。 首先你需要导入:

    from django.forms import TextInput, Textarea
    from django.db import models
    

    然后

    class MyForm(forms.ModelForm):
       class Meta:
             model:MyModel
       three = forms.CharField(widget=forms.Textarea(attrs={'rows':5, 'cols':80, 'style':"width: 610px;","class": "disablemce"}))
    
    class MyModelAdmin(ModelAdmin):
       model: MyModel
       form: MyForm
    

    如果您想调整 textArea 字段的大小,则只需在 attrs 选项中添加 'rows':5, 'cols':80, ,还需要添加宽度然后调整 'style':"width: 610px;" 在你的 attrs 选项中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-22
      • 2014-11-23
      • 2020-03-13
      • 1970-01-01
      • 1970-01-01
      • 2018-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多