Ответы пользователя по тегу AJAX
  • Почему не происходит вход через login() Django?

    @MaxGS
    Начинающий веб-разработчик
    Мне помог ваш код, я сделал вход через модальное окно bootstrap.

    ajax

    $('#login-form').on('submit', function(event){
            event.preventDefault();
            var csrf_token = $('#login-form [name="csrfmiddlewaretoken"]').val();
            var idu = $('#idu').val();
            var idp = $('#idp').val();
            $.ajax({
                url : "/login/",
                type : "POST",
                data : { csrfmiddlewaretoken: csrf_token, lgn: idu, pswd: idp},
                traditional: true
            }).done(function(response) {
                if (response == "OK") {
                    $('#login-form .alert-danger').remove();
                    $('#login-form').prepend('<div class="alert alert-success" role="alert"><strong>Успешно!</strong><br>Подождите секундочку...</div>');
                    document.location.href = document.location.href.replace('#open_login', '');
                } else {
                    if (!$('#login-form .alert-danger').length) {
                    $('#login-form').prepend('<div class="alert alert-danger" role="alert"><strong>Ошибка!</strong><br>Введите правильное имя пользователя и пароль.</div>');
                }
                }
            });
        });


    views.py

    def auth_view(request):
        username = request.POST.get('lgn', '')
        password = request.POST.get('pswd', '')
        user = auth.authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                auth.login(request, user)
                return HttpResponse('OK')
        else :
            return HttpResponse("False")


    urls.py

    url(r'^login/$', views.auth_view, name='login'),

    template login.html

    <div class="modal fade" id="LogModal" tabindex="-1" role="dialog" aria-labelledby="LogModalLabel" aria-hidden="true">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="LogModalLabel">Вход в учетную запись</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <form id="login-form" method="post" action="">{% csrf_token %}
                    <div class="modal-body">
                        <label for="id_username">Имя пользователя:</label>
                        <input class="form-control" type="text" name="username" maxlength="30" id="idu"/>
                        <label for="id_password">Пароль:</label>
                        <input class="form-control" type="password" name="password" id="idp"/>
                    </div>
                    <div class="modal-footer">
                        <button type="submit" class="btn btn-primary">Войти</button>
                    </div>
                </form>
            </div>
        </div>
    </div>


    Вызов модального окна:

    <button class="btn btn-outline-dark my-2 my-sm-0" type="button" style="font-weight: bold" data-toggle="modal" data-target="#LogModal">Регистрация / Вход</button>


    Может кому то поможет из новичков, я долго искал нужную мне информацию - рецепта готового нет, к сожалению.
    Ответ написан