Задать вопрос
  • Как отображать форму в модальном окне при вводе некорректных данных?

    @Baoo Автор вопроса
    Спасибо большое, добавил обработчик и всё заработало:
    $('#login').click(function(event) {
        event.preventDefault();
    
        let loginUrl = $(this).data('url');
        let csrfToken = $(this).data('csrf-token');
    
        function bindFormSubmit() {
            $('#loginModal form').submit(function(event) {
                event.preventDefault();
    
                let formData = $(this).serialize();
    
                $.ajax({
                    url: loginUrl,
                    type: 'POST',
                    data: formData,
                    headers: {
                        'X-CSRFToken': csrfToken,
                        'X-Requested-With': 'XMLHttpRequest'
                    },
                    success: function(response) {
                        if (response.indexOf('alert-danger') === -1) {
                            location.reload();
                        } else {
                            $('#loginModal .modal-body').html(response);
                            bindFormSubmit();
                        }
                    },
                    error: function() {
                        alert('Ошибка при входе в систему.');
                    }
                });
            });
        }
    
        $.ajax({
            url: loginUrl,
            type: 'GET',
            success: function(response) {
                $('#loginModal .modal-body').html(response);
                $('#loginModal').modal('show');
                bindFormSubmit();
            },
            error: function() {
                alert('Ошибка при загрузке формы.');
            }
        });
    });
    Написано
  • Как поместить Django-форму в модальное окно Bootstrap?

    @Baoo Автор вопроса
    С помощью js

    Похоже на то, что нужно отправлять запрос с помощью ajax, а ответ на него вставлять в модальное окно, спасибо за наводку
    Написано
  • Как поместить Django-форму в модальное окно Bootstrap?

    @Baoo Автор вопроса
    Александр Нестеров, это ссылка для того, чтобы можно было сразу после выхода снова войти, на скриншоте её видно, она не влияет на фактический выход из системы.
    Написано
  • Как поместить Django-форму в модальное окно Bootstrap?

    @Baoo Автор вопроса
    Александр Нестеров, давайте зайдём с другого конца. Есть кнопка "Выйти", которая показывается, когда пользователь не авторизован. При нажатии на неё появляется модальное окно без форм, просто надпись.

    Ссылка:
    <li class="nav-item">
        <a class="nav-link" data-toggle="modal" data-target="#logoutModal">Выйти</a>
    </li>


    Модалка:
    <div class="modal fade" id="logoutModal" tabindex="-1" role="dialog" aria-labelledby="logoutModalLabel">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-body">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">&times;</button>
                    {% include 'registration/logged_out.html' %}
                </div>
            </div>
        </div>
    </div>


    Шаблон logged_out.html:
    <h4 class="mb-3">Вы вышли из системы</h4>
    <p><a class="link-underline link-underline-opacity-0 link-opacity-50-hover" href="{% url 'login' %}" data-toggle="modal" data-target="#loginModal">Войти</a></p>


    При нажатии на ссылку, модальное окно появляется, шаблон в нём корректный:
    675930391e983411925783.jpeg
    Но фактического выхода из аккаунта не происходит, если обновить страницу, пользователь останется авторизованным.
    Мне кажется, что природа этой проблемы схожа с изначальной
    Написано
  • Как поместить Django-форму в модальное окно Bootstrap?

    @Baoo Автор вопроса
    Александр Нестеров, пробовал то, что вы написали, добавлял
    {% include 'registration/login.html' with form=form %}

    Изменений не было, форма не отрисовывается
    Написано
  • Как поместить Django-форму в модальное окно Bootstrap?

    @Baoo Автор вопроса
    Пробовал, но не помогло
    Как я представляю себе работу:
    Я нажимаю на кнопку, появляется модальное окно, которое отрисовывает html с формой из файла login.html
    Но вью вызывается только при переходе по ссылке (запрос на эндпоинт/accounts/login), но при нажатии на кнопку "Войти" непосредственного перехода по ссылке не происходит, поэтому вью не вызывается, соответственно и форма не отрисовывается
    Написано
  • Как поместить Django-форму в модальное окно Bootstrap?

    @Baoo Автор вопроса
    Спасибо за ответ, но, к сожалению, это не работает
    Переменной form в принципе не существует в контексте шаблона, поэтому любые варианты отображения возвращают пустое множество
    Написано
  • Почему в локальном репозитории Git основная ветка - называется master, а в GitHub, основная ветка - main?

    @Baoo
    В моей компании используется gitea, по умолчанию при создании нового репозитория ветка называется master, а в монорепе уже давно develop, поэтому скорее да, чем нет
    Написано