Ckeditor не сохраняет изменения django

У меня есть форма, в одном из полей которой я использую ckeditor. Однако когда я отправляю форму, изменения в поле ckeditor не сохраняются. В модели я изменил поле на aRichTextField. Я также установил "ckeditor" в своих приложениях в настройках.

Я также пытался загрузить эти скрипты в мой шаблон:

{% load static %}

<script type="text/javascript" src="{% static "ckeditor/ckeditor-init.js" %}"></script>
<script type="text/javascript" src="{% static "ckeditor/ckeditor/ckeditor.js" %}"></script> 

В дополнение к этому я также пытался добавить {{ form.media }} вместо скриптов, но это все равно не работает.

Я использую HTMX для динамического обновления формы.

Это мой шаблон формы прямо сейчас

<form action='' method="POST" class="form" hx-post='' hx-swap='outerHTML'>
    {% csrf_token %}
    {{ form.media }}
    <div class="form-group">
    {% for field in form %}
            {{ field }}
     </div>
    {% endfor %}
    
   
    <br>

    <div class='htmx-indicator'>Loading...</div>
    <div class="text-center">
        <button class='htmx-inverted-indicator' type='submit' >Save</button>
      </div>
    
    {% if message %}
        <p>{{ message }}</p>
    {% endif %}
    
</form>

Кто-нибудь знает, почему форма не сохраняется?

htx-post может нуждаться в полном url, а не в пустых кавычках.

попробуйте что-нибудь вроде:

 <form action='' method="POST" class="form" htx-post="{% url 'book_update_view_name' book.id %}" hx-swap="outerHTML">

Если вам не нужен дополнительный параметр get, который может создать проблему, вы можете поставить onclick на кнопку submit, чтобы ckeditor передавал данные в ваше поле. Что-то вроде этого :

<script>
    function saveCK(){
             let ckdata = CKEDITOR.instances.your_field_id.getData();
             $('#your_field_id').val(ckdata);
          }
</script>

да, извините за jquery, я не уверен в эквиваленте vanilla javascript.

и на кнопке отправки добавьте

onclick="saveCK()"

Еще один вариант - использовать hx-vals.

Например:

<button type='submit' hx-vals="js:{ {{ form.NAMEOFCKEDITORFIELD.name }}: CKEDITOR.instances['{{ form.NAMEOFCKEDITORFIELD.id_for_label }}'].getData()}" hx-post=POSTURL>Save</button>

Вернуться на верх