46

Django Admin で標準の textarea フィールドをリッチ テキスト エディターに置き換える最良の方法を知りたいですか?

4

8 に答える 8

28

管理テンプレートや Django newform 内部をいじる必要なく、Django 管理フォームにTinyMCEサポートを提供するアドオンDjango アプリケーションがあります。

于 2008-12-01T05:12:28.520 に答える
13

このスニペットを見てください。基本的な考え方は、管理者定義にカスタムJSを含めることです。これにより、標準のテキスト領域がリッチテキストエディターに置き換えられます。

jQuery / FCKEditorの場合、このようなJSは次のようになります。

$(document).ready(function() {
    $("textarea").each(function(n, obj) {
        fck = new FCKeditor(obj.id) ;
            fck.BasePath = "/admin-media/fckeditor/" ;
            fck.ReplaceTextarea() ;
    });
});
于 2008-12-03T13:34:31.000 に答える
12

私は言う: 独自の ModelAdmin クラスを定義し、特定のフィールドに使用されるウィジェットを次のように上書きします。

class ArticleAdminModelForm(forms.ModelForm):
    description = forms.CharField(widget=widgets.AdminWYMEditor)

    class Meta:
        model = models.Article

(AdminWYMEditor は、forms.TextareaDjango 管理アプリに固有の構成を持つ WYMEditor を追加するサブクラスです)。

このウィジェットの実装方法については、Jannis Leidel によるこのブログ投稿を参照してください。

于 2008-12-06T13:14:21.647 に答える
2
class KindEditor(forms.Textarea):
    class Media:
        css ={
            'all':(settings.STATIC_ROOT + 'editor/themes/default/default.css',)
        }
        js = (settings.STATIC_ROOT + 'editor/kindeditor-min.js',settings.STATIC_ROOT + 'editor/lang/zh_CN.js',)
    def __init__(self):
        attrs = {}
        attrs['rel'] = 'kind'
        super(KindEditor, self).__init__(attrs)


class NewsAdminForm(forms.ModelForm):
    pass

    class Meta:
        model = News
        widgets = {
            'body':KindEditor()
        }

class NewsAdmin(admin.ModelAdmin):
    form = NewsAdminForm


admin.site.register(News, NewsAdmin)
于 2011-10-14T02:01:27.423 に答える
2

現在、django admin で tinymce を使用する最も簡単な方法は、Grappelli を使用することです。

http://code.google.com/p/django-grappelli/

Grappelli はdjango-filebrowserの要件でもあるため、シバン全体が必要な場合はとにかく必要になります。

于 2010-03-09T20:31:53.080 に答える
2

Ok, to update a little this post, I would say that the easiest way to implement TinyMCE is to use the django-tinymce app. You must also download the JS files from the TinyMCE page. I got some errors with the django intenationalization, but downloading the laguage packs from the TinyMCE must be enough.

于 2010-04-23T02:42:53.987 に答える