인라인 블록에서 Add another {{ verbose_name }}
을 클릭하면 tinymce-textatea가 표시되지만 모든 컨트롤과 편집은 비활성화됩니다 (콘솔에서는 오류 없음). 3에서 첫 번째 textarea의 tinymce 제대로 작동합니다. 초기화 문제입니다.
코드 :django StackedInline tinyMCE 문제
#templates\admin\base.html
<script type="text/javascript" src="{% admin_media_prefix %}tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}";
var tMCE = tinyMCE.init({
//General otptions
mode : 'textareas',
theme: 'advanced',
readonly : false,
plugins : 'autolink,lists,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template',
// Theme options
theme_advanced_buttons1 : 'save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontsizeselect,|,forecolor,backcolor',
theme_advanced_buttons2 : 'cut,copy,paste,pastetext,pasteword,|,search,replace,|,undo,redo,|,link,unlink,anchor,|,image,media,|,fullscreen,code',
theme_advanced_buttons3 : '',
theme_advanced_toolbar_location : 'top',
theme_advanced_toolbar_align : 'left',
theme_advanced_statusbar_location : 'bottom',
theme_advanced_resizing : true,
file_browser_callback : function(field_name, url, type, win) {
var w = window.open('/elfinder', null, 'width=1000,height=800');
w.tinymceFileField = field_name;
w.tinymceFileWin = win;
}
});
</script>
#admin.py
class PostInline(admin.TabularInline):
model = Post
readonly_fields = ('created', 'updated')
class ItemAdmin(admin.ModelAdmin):
inlines = [
PostInline,
]
readonly_fields = ('created', 'updated')
UPDATE :
#base.html
$(document).ready(function(){
tinyMCE.settings = tinyMCE_opt;
$('textarea:not(.inline-group textarea)').each(function() {
tinyMCE.execCommand('mceAddControl', false, this.id);
});
});
#stacked.html
$(rows).formset({
prefix: "{{ inline_admin_formset.formset.prefix }}",
addText: "{% blocktrans with inline_admin_formset.opts.verbose_name|title as verbose_name %}Add another {{ verbose_name }}{% endblocktrans %}",
formCssClass: "dynamic-{{ inline_admin_formset.formset.prefix }}",
deleteCssClass: "inline-deletelink",
deleteText: "{% trans "Remove" %}",
emptyCssClass: "empty-form",
removed: updateInlineLabel,
added: (function(row) {
initPrepopulatedFields(row);
reinitDateTimeShortCuts();
updateSelectFilter();
updateInlineLabel(row);
$(row).find('textarea').each(function() {
tinyMCE.execCommand('mceAddControl', false, this.id);
});
})
});
그러나 또 다른 문제가 나타납니다
오류가 더 이상 및 인라인의 텍스트 영역이 작동하지 않습니다 formset
방법을 발생한 경우는 간단한 텍스트 영역
는 TinyMCE에 4 명령이'tinymce.execCommand ('mceAddEditor', 거짓, this.id)을하게된다 같은데;',하지만 난이 하드에 자신의 문서를 찾을 발견했다. –