Django возвращает значение модели, сохраненное формой в POST (Ajax), когда я вызываю запрос через GET (Ajax)

У меня есть экран с таблицей данных с данными, я обновляю значения с помощью ajax и затем перезагружаю его, но в некоторых случаях я сохраняю значение через пост-запрос, а затем, когда я делаю новый запрос для обновления экрана с помощью get, измененные значения возвращаются без какой-либо ошибки.

View

class ManualGetView(View):
    
    # get by which I query all values to show in the datatable
    def get(self, request):
        items =  ConfiguracaoManual.objects.all().order_by('endereco')
        data = [item.to_dict_json(get_permissoes(RAIZ, request.user)) for item in items]
        response = {'data': data}
        return JsonResponse(response)

class ManualAltView(View):

    def get(self, request, request_id):
        item =  ConfiguracaoManual.objects.get(pk=request_id)
        data = item.get_data()
        response = {'status': 200, 'data': data}
        return JsonResponse(response)

    # post where I update the values
    def post(self, request, request_id):
        if request_id:
            model = ConfiguracaoManual.objects.get(pk=request_id)
            form = ManualForm(request.POST, instance=model)
        else:
            form = ManualForm(request.POST)
        if form.is_valid():
            instance = form.save()
            # instance.save()
            if not request_id:
                Auditoria(usuario=request.user, modelo=RAIZ, mensagem=SUCESSO['incluir']).save()
                response = {'status': True, 'msg': SUCESSO['incluir']}
            else:
                Auditoria(usuario=request.user, modelo=RAIZ, mensagem=SUCESSO['incluir']).save()
                response = {'status': True, 'msg': SUCESSO['incluir']}
        else:
            if not request_id:
                Auditoria(usuario=request.user, modelo=RAIZ, mensagem=ERRO['alterar']).save()
                response = {'status': False, 'msg': ERRO['alterar'], 'erros': form.errors}
            else:
                Auditoria(usuario=request.user, modelo=RAIZ, mensagem=ERRO['alterar']).save()
                response = {'status': False, 'msg': ERRO['alterar'], 'erros': form.errors}
        return JsonResponse(response)

JS Script

//Function used to update by ajax
function setItem() {
    console.log('setItem()')
    id = $("#set_item").attr('valor')
    data = $('#form-data').serialize();
    $.ajax({
        type: 'POST',
        url: '/' + model + '_set/' + id,
        data: data,
        success: function (response) {
            if (response.status) {
                if (response.redirect) {
                    window.location.href = response.redirect;
                } else {
                    setAlertaModalForm(response.msg, false)
                    table.ajax.reload(null, false);
                    limpaErros()
                    if (id == 0) {
                        limpaForm()
                    }
                }
            } else {
                setAlertaModalForm(response.msg)
                erros = response.erros
                Object.keys(erros).forEach(function (key) {
                    mensagem = ""
                    $("[name='" + key + "']").nextAll().remove()
                    Object.keys(erros[key]).forEach(function (key2) {
                        mensagem += '<div class="invalid-feedback" style="display: block;">' + erros[key][key2] + '</div>'
                    });
                    $("[name='" + key + "']").after(mensagem)
                });
            }
        },
        error: function (response) {
            alert(response["responseJSON"]["error"]);
        }
    })
}

Я не нашел никакого решения

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