Jquery 为什么Django在使用ajax保存记录后将我重定向到api视图?
我有一个问题,我正在使用Django和restframework开发一个学校项目,但是当我用ajax保存记录时,这会将我重定向到api页面而不是CRUD页面,只有管理员才能看到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
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调用。