django-tinymceをインストールし、アプリにさまざまなモデルを追加しましたHTMLField
。
djangoadminである種の「プレーンテキストとして貼り付け」機能を作成しようとしています。ユーザーがctrl+v / cmd + v /右クリック>貼り付けなどを行うときに、MS Word、HTMLタグ、およびその他のほとんどすべてを削除したい。
たくさんの人が話しているのを見ることができますが、何もうまくいかないようです。django-tinymceなので、私はこれらすべてをで行っていTINYMCE_DEFAULT_CONFIG
ますsettings.py
。
私はそれが機能していると思った-基本管理者テンプレートをオーバーライドして、次の関数を持つjsファイルを含めました(関数のクレジットを誰が持っているのか思い出せません-おそらくSOの誰か)-
function tinymcePastePlainText() {
var ed = tinyMCE.get(0);
ed.pasteAsPlainText = true;
//adding handlers crossbrowser
if (tinymce.isOpera || /Firefox\/2/.test(navigator.userAgent)) {
ed.onKeyDown.add(function (ed, e) {
if (((tinymce.isMac ? e.metaKey : e.ctrlKey) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45))
ed.pasteAsPlainText = true;
});
} else {
ed.onPaste.addToTop(function (ed, e) {
ed.pasteAsPlainText = true;
});
}
}
次に、デフォルトの構成を設定します-
TINYMCE_DEFAULT_CONFIG = {
'plugins': "'paste'",
'paste_text_sticky': "true",
'paste_retain_style_properties': "",
'oninit': "tinymcePastePlainText",
#...Further config
}
これは、前回見たときに望んでいたことを実行しているように見えましたが、現在は機能していません。ブラウザーでのデバッグでは、tinymcePastePlainText()
関数が(ロードされていても)実行されないことが示されているようです。
設定を-に設定するなど、他のさまざまな方法を試しました。
TINYMCE_DEFAULT_CONFIG = {
'plugins': "'paste'",
'paste_auto_cleanup_on_paste': 'true',
'paste_remove_styles': 'true',
'paste_remove_styles_if_webkit': 'true',
'paste_strip_class_attributes': 'true',
#....further config
}
(それは何も変わらなかったようです)。または
TINYMCE_DEFAULT_CONFIG = {
'plugins': "'paste'",
'setup': "function(ed) { ed.onInit.add(function(ed) {ed.pasteAsPlainText = true;});",
#....further config
}
上記の関数を別のjsファイルからロードしてから、関数名を構成に含めてみましたが、それも機能'setup': 'pasteAsPlainTextFuncion()'
しませんでした。
私はこれに何年も費やしたようですが、実際には何の進歩もありません-なぜ私の関数が呼び出されたのかわかりませんが、今はそうではありません-ブラウザのデバッグツールはエラーを検出していません。