Всем привет
Делаю "умный логин", который бы позволял юзеры регистрироваться через поп-ап окно и остаться на той же странице.
Проблема: чтобы подрузились элементы, которые зависят от статуса авторизации юзера нужно рефрешнуть страницу, и у меня это не выходит.
Вьюшка
def login(request):
if request.POST:
username = request.POST.get('username', '')
password = request.POST.get('password', '')
path = request.POST.get('path', '')
user = auth.authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
return redirect(path) #вот это не работает
else:
json = {
'error_login': "нет такого пользователя",
}
return JsonResponse(json, safe=False,)
else:
json = {
'error_login': "произошла ошибка",
}
return JsonResponse(json, safe=False,)
Ajax - запрос, который грабает данные + выводит ошибки, если что-то пошло не так.
<script>
$('#login_form').submit(function (e) {
e.preventDefault();
var m_username = $('#username').val();
var m_password = $('#password').val();
var m_path = $('#path').val();
$.ajax({
type: "POST",
url: {% url 'login' %},
data: {
"username": m_username,
"password": m_password,
"path": m_path,
"csrfmiddlewaretoken" : "{{ csrf_token }}"
},
success: function (data) {
$('#error_login_message').html(data.error_login);
}
});
});
</script>