Использование django-tinymce в строке с его конфигурацией
Я использую django-tinymce и он успешно работает с полями Django Admin, а также с полями в стандартных не-Admin формах, для обновления объекта.
Теперь я пытаюсь использовать его "inline" и, хотя он отправляется и сохраняется, он не использует конфигурацию django-tinymce - указанную в моем settings.py
- как другие.
У меня есть форма Django следующего вида:
class TestModelInlineUpdateForm(forms.ModelForm):
class Meta:
model = TestModel
fields = ("description",)
widgets = {"description": TinyMCE()}
А мой шаблон содержит:
<form method="post" id="testForm">
{% csrf_token %}
{{ form.media }}
<div class="tinymce" id="inline-editor">
{{ object.description|safe }}
</div>
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
<input type="hidden" name="description" value="">
<button type="submit">Update</button>
</form>
<script type="text/javascript">
tinymce.init({
selector: '#inline-editor',
inline: true
});
// Set the description field to the new HTML on form submission.
document.querySelector("#testForm").addEventListener("submit", function(ev) {
ev.preventDefault();
let descriptionHTML = document.querySelector("#inline-editor").innerHTML;
let descriptionField = document.querySelector("input[name='description']");
descriptionField.value = descriptionHTML;
this.submit();
});
</script>
Мне пришлось придумать последний кусочек JS, который обеспечивает копирование отредактированного HTML из TinyMCE в скрытое поле формы, и, хотя это работает, я чувствую, что, возможно, есть лучший способ?
При загрузке страницы в консоли отображается:
SyntaxError: Ошибка разбора JSON: Неожиданный идентификатор "undefined"
.
что, вероятно, не помогает.