【问题标题】:Redirect does not redirect in Django重定向在 Django 中不重定向
【发布时间】:2019-11-12 07:21:27
【问题描述】:

我正在使用 jquery 为注册按钮事件的用户进行注册,尽管我的 createUser 方法正确注册了用户,但不会重定向到指定的页面,而是通过控制台绘制它

views.py

@csrf_exempt

定义创建用户(请求):

#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

【问题讨论】:

    标签: django


    【解决方案1】:

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

    【讨论】:

    • 欢迎。由于此答案解决了您的问题,因此该答案需要投票。当其他人看到这个答案面临同样的问题时,他们会更加自信。 :D
    【解决方案2】:

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

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

    for more details about redirect

    【讨论】:

    • 感谢您的回答,但它通过控制台(html)向我显示页面,在我的问题图像中显示它,我不知道为什么会这样。
    猜你喜欢
    • 2013-09-11
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    相关资源
    最近更新 更多