【问题标题】:Customize ckeditor in django admin form在 django 管理表单中自定义 ckeditor
【发布时间】:2013-08-26 09:53:39
【问题描述】:

我只需要为我的 AdminForm 中的一个字段配置 ckeditor 的自定义参数(工具栏、宽度和高度)

class BlogAdminForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(BlogAdminForm, self).__init__(*args, **kwargs)
        self.fields['description'].widget = CKEditor(attrs={'cols': 100, 'rows': 25})

如何只为该字段设置ckeditor的具体参数(如«toolbarGroups»、«width»、«height»等)?

【问题讨论】:

    标签: django django-admin ckeditor django-widget django-ckeditor


    【解决方案1】:

    我发现覆盖字段属性的最佳方法是使用自定义 ModelForm:

    class XAdminForm(forms.ModelForm):
        name = forms.CharField(label='Name', max_length=100,
                           widget=forms.TextInput(attrs={'size': '100'}))
        something = forms.CharField(label='Something', max_length=SOME_MAX_LENGTH,
                              widget=forms.Textarea(attrs={'rows': '10', 'cols': '100'}))
        note = forms.CharField(label='Note', max_length=NOTE_MAX_LENGTH,
                           widget=forms.Textarea(attrs={'class': 'ckeditor'}))
    
    class Meta:
        model = x
    
    
    class XAdmin(admin.ModelAdmin):
        model = X
        form = XAdminForm
    
        class Media:
            js = ('/static/js/ckeditor/ckeditor.js',)
    admin.site.register(X, XAdmin)
    

    您可以根据需要在 ModelForm 或 ModelAdmin 中注入其他属性或 JS。

    该技术很简单,但显然没有广为人知或记录在案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-26
      • 2019-08-07
      • 1970-01-01
      • 2020-04-01
      • 2015-08-25
      • 2018-10-27
      • 2012-12-10
      • 2010-10-03
      相关资源
      最近更新 更多