webdevqa.jp.net

Django Admin?

Django管理者ですか?

39
user41736

アドオンDjangoアプリケーション を提供する TinyMCE サポートがあり、Django管理用テンプレートまたはDjango newform internals。

25
mshroyer

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

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

$(document).ready(function() {
    $("textarea").each(function(n, obj) {
        fck = new FCKeditor(obj.id) ;
            fck.BasePath = "/admin-media/fckeditor/" ;
            fck.ReplaceTextarea() ;
    });
});
13
vvarp

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

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

    class Meta:
        model = models.Article

(AdminWYMEditorはforms.Textarea Django admin app)に固有の設定でWYMEditorを追加するサブクラス。

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

10
zgoda

投稿と回答の日付では、TinyMCEは非常に人気がありました(おそらく今日のままです)。しかし、しばらくしてckeditorが登場し、多くのSOユーザー:

WikiのTinyMCEとCKeditorを比較

http://www.turnkeylinux.org/blog/tinymce-vs-ckeditor

2013年のDjangoロシア語のWISIWYGエディターのレビュー:

http://habrahabr.ru/company/htdt/blog/202782/

6

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

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

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

2
user289974

OK、この投稿を少し更新するには、TinyMCEを実装する最も簡単な方法は Django-tinymce アプリを使用することだと思います。 TinyMCEページ からもJSファイルをダウンロードする必要があります。 Django intenationalizationでエラーが発生しましたが、TinyMCEから言語パックをダウンロードするだけで十分です。

2
FernandoEscher
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)
2
user994610