Jquery 为什么Django在使用ajax保存记录后将我重定向到api视图?

Jquery 为什么Django在使用ajax保存记录后将我重定向到api视图?,jquery,python,ajax,django,Jquery,Python,Ajax,Django,我有一个问题,我正在使用Django和restframework开发一个学校项目,但是当我用ajax保存记录时,这会将我重定向到api页面而不是CRUD页面,只有管理员才能看到api页面(视图),所以。。。你能帮我解决这个问题吗 这是我的观点 class pacientesList(generics.ListCreateAPIView): queryset = Paciente.objects.all() serializer_class = pacienteSerializer

我有一个问题,我正在使用Django和restframework开发一个学校项目,但是当我用ajax保存记录时,这会将我重定向到api页面而不是CRUD页面,只有管理员才能看到api页面(视图),所以。。。你能帮我解决这个问题吗

这是我的观点

class pacientesList(generics.ListCreateAPIView):
    queryset = Paciente.objects.all()
    serializer_class = pacienteSerializer
    permission_classes = (IsAuthenticated, )

    def list(self, request):
        queryset = self.get_queryset()
        serializer = pacienteSerializer(queryset, many=True)
        return Response(serializer.data)
    def perform_create(self, serializer):
        serializer.save(user=self.request.user)
这是我用来保存数据的ajax代码

$("#btnGuardarPaciente").click(function() {
    $.ajax({
        url: '{% url "core:pacientes_list" %}',
        type: 'POST',
        data: $("form").serialize(),
        dataType: 'json',
        success: function(data) {
            console.log(data); // only to see if this is working
            alert("Paciente agregado!.");
            $("#exampleModal").modal('toggle');

        },
        error: function(xhr, resp, text) {
            console.log(xhr, resp, text);
        }
    });
});
它工作正常,这将记录保存到db中,但唯一的问题是当我单击save按钮时,这会将我重定向到api页面,而不是CRUD页面

我的html表单

<form id="savePaciente" action="{% url 'core:pacientes_list' %}" method="post" >{%csrf_token%}
                        <md-form>
                            <input type="text" required name="first_name" 
                            class="form-control" id="id_first_name" placeholder="Nombre(s)">

                            <input type="text" required name="last_name" class="form-control"
                            id="id_last_name" placeholder="Apellidos">

                            <label for="id_gender">Selecciona el sexo</label>
                            <select class="form-control" name="gender" id="id_gender" required>
                                <option value="F">Femenino</option>
                                <option value="M">Masculino</option>
                                <option value="O">Otro</option>
                            </select>
                     ........ 
                     ........
        <input type="submit" class="btn btn-primary" value="Save" 
        id="btnGuardarPaciente">
                    </form>
{%csrf\u令牌%}
塞莱西奥纳酒店
女性
男性的
奥特罗
........ 
........
还有我的URL.py

urlpatterns = [
    url(r'^$', views.dashboard, name='dashboard'),
    url(r'^historia-clinica/$', views.historiaClinicaView.as_view(), name='historia_clinica'),
    #url(r'^paciente-create/$', views.createPaciente, name='paciente_create'),
    #is this, the next url!
    url(r'^pacientes/$', views.pacientesList.as_view(), name='pacientes_list'),
    url(r'^paciente-detail/(?P<pk>[0-9]+)/$', views.pacienteDetail.as_view(), name='paciente_detail'),
]
urlpatterns=[
url(r'^$',views.dashboard,name='dashboard'),
url(r“^historia clinica/$”,views.historicalinicaview.as_view(),name='historia_clinica'),
#url(r“^paciente create/$”,views.createPaciente,name='paciente_create'),
#这就是下一个url!
url(r“^pacientes/$”,views.pacientslist.as_view(),name='pacientes_list'),
url(r“^paciente detail/(?P[0-9]+)/$”,views.pacientedail.as_view(),name='paciente_detail'),
]

我的CRUD在/historia clinica/

中,因为您将保存按钮放在一个html表单中,并定义了一个
操作,因此当您按下它时,会发生两件事:

  • 您的ajax代码已执行
  • web浏览器收集表单数据,并将其发布到表单的
    操作中定义的URL中。这将导致重定向

  • 你可能不希望第二种情况发生。只需将
    表单
    块替换为
    div

    是的,这是我的错误,谢谢!,现在,我将save按钮放入另一个div并进行js调用。