DJango - обработка ошибок form_invalid с ajax-переданными данными

Я ищу способ сохранить все встроенные функции django для ошибок формы при ajax-запросе, который возвращает "стандартный" ответ django form_invalid(). Например, при неajax запросе:

class SomeCreateView(LoginRequiredMixin, SideBarMixin, CreateView):
    def form_invalid(self):
        return self.render_to_response(self.get_context_data())

А затем в шаблоне:

<div class="container-fluid">
    <form action="" method="post" enctype='multipart/form-data'>
        {{ form.non_field_errors }}
        ...
        <div class="wide_items">
            {{form.no_form.errors}}
            {{form.no_form.label_tag}}
            {{form.no_form}}
       </div>
       ...
   </form>
   ...

Затем я получаю все красивые сообщения об ошибках, отображаемые в соответствующих полях и/или в верхней части формы для не_полевых_ошибок и т.д.

Однако, используя следующий jquery ajax запрос:

some_handler: function (e, clickedBtn) {
    // .... some logic to check what to do etc. ....
    
    $.ajax({
        url: url,
        type: "POST",
        data: data,
        success: function (response) {
            if (response.status==1) {               // form_valid() - reload current page, load some other
                alert(response.message);
                location.reload(true);
                if (response.next_url) {
                    mainjs.open_new_window(response.next_url);
                }

            } else if (response.status==0) {        // form_invalid - how to manage this?
                alert(response.message);
            }
        },
        error: function (xhr, errmsg, err) {
            $('#results').html("<div class='alert-box alert radius' data-alert>Oops! We have encountered an error: " + errmsg +
                " <a href='#' class='close'>&times;</a></div>"); // add the error to the dom
        }
    });
},

В этом втором случае, я хотел бы получить какой-то способ напрямую получить ответ от обычного маршрута:

class SomeCreateView(LoginRequiredMixin, SideBarMixin, CreateView):
    def form_invalid(self, form, formset):
        return self.render_to_response(self.get_context_data())

С моим кодом ajax.... Могу ли я извлечь только html из response & как-то обновить страницу с этим? Или мне нужно планировать другой ответ сервера для обычного submit & ajax?

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