2017-05-11 9 views
4

Djangoの管理でTinyMCEをHTMLコンテンツ用のエディタとして使用するさまざまな方法を試した結果、このチュートリアルではhttps://github.com/ITCase-django/django-tinymce-4を使用するようになりました。Django:管理インタフェースでTinyMCE 4を使用

しかし、この方法を使用するには、Django 1.9と「Grappelli」管理スキンを持っていなければなりません。私はそれを削除しようとしましたが、TinyMCEも削除されました。

私はdjango-tinymceパッケージのHTMLField()も試してみましたが、この方法では非常に手の込んだエディタしか得られませんでした(太字、斜体、リストなど)。

本格的なTinyMCE 4でDjango(最新版)を管理するための「ベストプラクティス」はありますか?

EDIT:さまざまなオプション(HTMLField()の高度なテーマなど)を試した後、私はグラッペリのテーマで始まったところに戻ります。私はこのテーマをしばらくお待ちしていますね。

答えて

1

サードパーティ製のライブラリは簡単なソリューションですが、JSのみのソリューションが必要な場合は、他のライブラリをインストールする必要はありません。django adminでカスタムJSファイルを使用して実行できます。何より良いオプションが一緒に来ない場合は、あなたadmin.pyで次に

class FooForm(forms.ModelForm): 

    def __init__(self,*args,**kwargs): 
     super(FooForm, self).__init__(*args, **kwargs) 
     self.fields['yourtinymcefield'].widget.attrs['class'] = 'tiny-class' 
    class Meta: 
     model = FooModel 
     fields = ('fields') # your fields here 

class FooAdmin(admin.ModelAdmin): 
    form = FooForm 
    # regular stuff 
    class Media: 
     js = (
      'https://cloud.tinymce.com/stable/tinymce.min.js' # tinymce js file 
      'js/myscript.js',  # project static folder 
     ) 

admin.site.register(Foo, FooAdmin) 

その後

<script> 

tinyMCE.init({ 
     //mode : "textareas", 
     mode : "specific_textareas", 
     editor_selector : "tiny-class", 
     theme : "simple" 
    }); 
</script> 
+1

ありがとう、これは実際に私の管理インターフェイスにTinyMCE 4を追加します:-) TinyMCEをカスタマイズし、それを画像とともに再生することは別の問題です。私は今、グラッペリに働いている編集者を私に提供してくれてありがとう。ああ、賞金はあなたのものです。 – Filip

+0

ええ、そうすれば、管理パネルでJS関連のものをすべて初期化できます。 :) – Aniket

1

私は最近管理ページでいくつかの変更を加えなければならず、thatが役に立ちました.TinyMCEをロードして、これで必要なフォーム用のinitを実行できるかもしれません。 (私はコメントに書いておきますが、私の担当者にはコメントできません)

+0

おかげで、私は管理ページを修正避けたいmyscript.jsでそれを初期化するが、私はこれを試してみる。 – Filip

1

ドキュメントを見ると、エディタを実装する方法がいくつかあります。http://django-tinymce.readthedocs.io/en/latest/usage.html#using-the-widgetです。

モデルのフィールドタイプを使用しているので、エディタで使用可能なオプションを拡張するための設定を見たいと思うでしょう。

デフォルトの設定は「シンプル」です。それが原油であるというあなたの声明に基づいて、私はフル機能のエディタに移ります。あなたが追加した場合、テストを行わずhttp://django-tinymce.readthedocs.io/en/latest/installation.html#configuration

:そうするには

は、あなたのプロジェクトのsettings.pyで設定を変更しようとしている

TINYMCE_DEFAULT_CONFIG = { 
'theme': "advanced", 
} 

これはあなたのためのより多くのボタンを開きます使用する。

+0

ありがとう、私はこれを逃した方法を知らない。これは確かに動作し、ボタンを増やしますが、結果のTinyMCEは現在のTinyMCE 4とはまだまだ似ていません。 – Filip

+0

私の推測は、現在のTinyMCE4の感触を与えるのに役立つプラグインを追加した場合です。あなたはより強力なエディタを構築するプラグインを設定フィールドに追加するだけです。 –

+0

正直なところ、もう少し試してみると、HTMLコンテンツを追加/編集したり、TinyMCEを.jsファイルで直接統合したりするために、新しいページ全体を構築するのは簡単で楽になるでしょう。 – Filip

関連する問題