Redirect не перенаправляет в Django - PullRequest
0 голосов
/ 01 июля 2019

Я делаю регистрацию для пользователя, используя jquery для события кнопки регистрации, хотя мой метод createUser правильно регистрирует пользователя, не перенаправляет на указанную страницу, а рисует его консолью

views.py

@ csrf_exempt

def createUser (запрос):

#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'). Нажмите (функция () {

    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);
            }
        });
    }

});

введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 01 июля 2019

Вы можете написать window.location.href = 'http://127.0.0.1:8000/platos/'; в функции успеха вашего вызова ajax.Он перенаправит вас на http://127.0.0.1:8000/platos/

0 голосов
/ 01 июля 2019

Вы можете сделать это в view.py
return redirect('/platos/')

Или использовать метод обратного разрешения имен
return redirect(reverse('platos')) "platos" - это просто имя обратной ссылки в этом URL

для более подробной информации о перенаправлении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...