重定向不会在Django中重定向

时间:2019-07-01 16:14:45

标签: django

尽管我的createUser方法正确地注册了用户,但我正在使用jquery为用户进行注册,虽然我的createUser方法正确地注册了用户,但没有重定向到所指示的页面,而是通过控制台进行绘制

views.py

@csrf_exempt

def createUser(request):

#if request.method == 'POST':
'''    nombres = request.POST.get('nombres')
    apellidos = request.POST.get('apellidos')
    email = request.POST.get('email')
    password = request.POST.get('password')
    direccion = request.POST.get('direccion')
    hour = timezone.now()
    day  = timezone.now()
    myuser=User(password,day,hour,email,nombres,apellidos,direccion)
    myuser.save()
 '''  

return redirect('http://127.0.0.1:8000/platos/')

def platos(请求):

platos=Plato.objects.all()
return render(request,"core/platos.html",{'platos':platos})

urls.py

path('register/',views.createUser,name="register"),
path('platos/',views.platos,name="platos"),

jquery

$('#registro')。click(function(){

    var nombres = $("#exampleInputNombresRegistrarse").val();
    var apellidos = $("#exampleInputApellidosRegistrarse").val();
    var email = $("#exampleInputEmailRegistrarse").val();
    var password = $("#exampleInputPasswordRegistrarse").val();
    var direccion=$("#exampleInputDireccionRegistrarse").val();

    if (nombres == '' || email == '' || password == '' || apellidos == '' 
    || direccion == '') {
    alert("Por favor completa todos los campos...!!!!!!");
    }
    else if(email.indexOf('@', 0) == -1 || email.indexOf('.', 0) == -1){
        alert("Por favor ingrese un correo válido...!!!!!!");
    }
    else{
        alert("Bien hecho "+nombres);

        $.ajax({
            url: "http://127.0.0.1:8000/register/",
            method: 'POST', // or another (GET), whatever you need
            data: {'nombres': nombres,'apellidos':apellidos,'email':email,
                    'password':password,'direccion':direccion
                    }, 
            success: function (data) {        
                // success callback
                // you can process data returned by function from views.py
                console.log(data);
            }
        });
    }

});

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以在view.py
中执行此操作 return redirect('/platos/')

或使用反向解析名称技术
return redirect(reverse('platos'))“ platos”只是该网址中的反向关系名称

for more details about redirect

答案 1 :(得分:0)

您可以在ajax调用的内部成功函数中编写window.location.href = 'http://127.0.0.1:8000/platos/';。它会将您重定向到http://127.0.0.1:8000/platos/