したがって、django-wysiwyg-redactor==0.4.9 と Django==1.9 を使用しています。ここで説明されている問題。
コメントでトリックを試しましたが、役に立ちませんでした。また、ブラウザーのコンソールで、このコードを必要なテキストエリアに直接実行します。
$('#id_outboundprogram_set-2-text').trigger('redactor:init');
とにかく、そこにはリダクターはありません。上記のコードを実行する前後の Textarea 要素は次のようになります。
<textarea class=" redactor-box" cols="40" data-redactor-options="{"lang": "en", "fileUpload": "/en/redactor/upload/file/", "imageUpload": "/en/redactor/upload/image/", "plugins": ["table", "video"]} id="id_outboundprogram_set-2-text" name="outboundprogram_set-2-text" rows="10"></textarea>
奇妙なことに、パッケージ ファイルの jquery.redactor.init.js で見つけたこのコードが機能していません。
// Initialize Redactor on admin's dynamically-added inline
// formsets.
//
// Credit to the approach taken in django-selectable:
// https://github.com/mlavin/django-selectable
$(document).on('click', '.add-row', function () {
$(this).parents('.inline-related')
.find('tr.form-row:not(.empty-form)').last()
.find('textarea.redactor-box')
.trigger('redactor:init');
});
何か案は?
更新:
なぜそうなるのかはまだわかりませんが、redactor.js
パッケージファイルからファイルをインクルードし、上記のスクリプトに少し変更を加えることで、この問題を解決しました。
<script type="text/javascript" src="{% static 'js/admin/redactor.js' %}"></script>
var program_tab = $('#outboundprogram_set-group'); // this is just because I have several inlines
program_tab.children('.add-row').on('click', function(){
program_tab.children('.inline-related:not(.empty-form)')
.last()
.find('textarea.redactor-box')
.redactor();
});
更新 2:
このソリューションを使用すると、プラグインや画像/ファイル ハンドラーはありません。ということで、ちょっと調べてみたらこんな記事を見つけました。
しかし、画像とファイルの処理は django-wysiwyg-redactor で既に実装されているため、RedactorUploadView()
. URL は、ソースの urls.py ファイルにあります。コードは次のとおりです。
var program_tab = $('#outboundprogram_set-group');
program_tab.children('.add-row').on('click', function(){
program_tab.children('.inline-related:not(.empty-form)')
.last()
.find('textarea.redactor-box')
.redactor({
imageUpload: "{% url 'redactor_upload_image' 'tours/out/programs/img/' %}",
fileUpload: "{% url 'redactor_upload_file' 'tours/out/programs/files/' %}",
plugins: ['table', 'video', 'fullscreen', 'image']
});
});