Я встроил форму tinymce в приложение django. Я следовал некоторым онлайн-учебникам, и они работали нормально в своих основных настройках по умолчанию. Единственная проблема заключалась в том, что форма tinymce не выглядела так, как я хотел. Поэтому я добавил немного JavaScript, чтобы добавить больше кнопок, чтобы переместить их в верхнюю часть области.
Когда я добавляю javascript, форма не работает. То есть мои новые правки не передаются обратно на сервер, когда я нажимаю кнопку СОХРАНИТЬ.
Следующее отображает форму tinymce:
<form action="/edit_document/{{ current_doc.id }}/" method="post">{% csrf_token %}
Name: {{ form.name }} <p>
{{ form.content }}
<input type="submit" value="SAVE" />
</form>
Приведенный выше код работает, пока я не добавлю следующий javascript для форматирования моего редактора tinymce.
<script type="text/javascript"> tinyMCE.init({
mode: "textareas",
theme: "advanced",
plugins: "advhr,table,emotions,media,insertdatetime,directionality",
theme_advanced_toolbar_align: "left",
theme_advanced_toolbar_location: "top",
theme_advanced_buttons1:"bold,italic,underline,strikethrough,sub,sup,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2:"bullist,numlist,outdent,indent,ltr,rtl,separator,link,unlink,anchor,image,separator,table,insertdate,inserttime,advhr,emotions,media,charmap,separator,undo,redo",
theme_advanced_buttons3: "",
content_css: "images/style.css",
height: "350px",
width: "653px"
});
</script>
Что происходит сейчас, так это то, что form.content
не передается обратно в представление django, скорее я получаю исходное содержимое за вычетом любых новых правок.
Что здесь может происходить? Как я могу это исправить?
После долгих проб и ошибок вот решение. Не размещайте скрипт в верхней части веб-страницы для форматирования элементов tinymce. Вместо этого создайте специальный виджет, который форматирует виджет. Даже если сценарий один и тот же, он влияет на то, как django интерпретирует поле.