CKEditor не сохраняет данные

Я использую CKEditor для формы. В админке он работает нормально, но при использовании его в ModelForm CreateView редактор не сохраняет данные. Как в официальной документации, с таким кодом:

class EventForm(forms.ModelForm):
    description = forms.CharField(widget=CKEditorWidget())
    image = forms.ImageField(widget=forms.ClearableFileInput(), required=False)
    class Meta:
        model = Event
        fields = ['title', 'description', 'type', 'start_date', 'end_date', 'fee']  

И этот html:

<div>
    <form hx-post="{{ request.path }}" enctype="multipart/form-data" class="modal-content">
        {% csrf_token %}
        <div class="modal-header">
            <h1>Create new event</h1>
            <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
        </div>
        <div class="modal-body">
            {{form.media}}
            {{form.as_p}}
        </div>
        <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
            <input type="submit" value="Submit">
        </div>
    </form>
</div>

Не позволяет мне отправить форму, так как продолжает говорить, что поле описания является обязательным. Пытаюсь добавить поле виджета CKEditor в методе init, с таким кодом:

class EventForm(forms.ModelForm):
    image = forms.ImageField(widget=forms.ClearableFileInput(), required=False)
    class Meta:
        model = Event
        fields = ['title', 'description', 'type', 'start_date', 'end_date', 'fee']  

    def __init__(self, *args, **kwargs):
        super(EventForm, self).__init__(*args, **kwargs)
        self.fields['start_date'].widget = forms.SelectDateWidget()
        self.fields['end_date'].widget = forms.SelectDateWidget()
        self.fields['description'].widget = CKEditorWidget()

Форма будет отправлена, а экземпляр создан. Однако поле 'description' будет пустым, даже если я введу некоторое содержимое. Вот мой взгляд:

class CreateEvent(LoginRequiredMixin, CreateView):
    model = Event
    form_class = EventForm
    template_name = 'events/events_form.html'
    success_url = reverse_lazy('events:index')

    def form_valid(self, form):
        form.instance.author = self.request.user
        event_obj = form.save(commit=True)
        image = self.request.FILES.get('image')
        if image:
            EventImage.objects.create(title=event_obj.title, image=image, event=event_obj)
        return HttpResponse(status=204, headers={'HX-Trigger' : 'eventsListChanged'})

Как убедиться, что данные сохраняются из CKeditor?

В models.py

from ckeditor.fields import RichTextField

В вашей модели

description = RichTextField()

Вам не нужно ничего делать в forms.py, кроме как поместить его в список полей

Вы можете использовать hx-vals для передачи значения описания вручную. Что-то вроде этого должно работать:

hx-vals="js:{description: CKEDITOR.instances.id_description.getData()}"
Вернуться на верх