Если при входе в систему имя пользователя или пароль недействительны, как вывести ошибку на страницу, не обновляя ее, Django

У меня есть всплывающее окно входа в систему и я хочу, чтобы после ввода неправильного имени пользователя или пароля появлялось сообщение об ошибке, как обычно "Username or password is incorrect", но после нажатия кнопки на сайте, он обновляется и мне нужно снова открыть всплывающее окно, чтобы увидеть ошибку, как я могу сделать так, чтобы сообщение об ошибке появлялось без обновления страницы.

Views.py

def main(request):
    form = CreateUserForm()

    if "register-btn" in request.POST:
        ....

    elif "login-btn" in request.POST:
        username = request.POST.get('username-log')
        password = request.POST.get('password-log')
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('/account')
        else:
            messages.info(request, 'Username or password is incorrect')
            #here I don't know what to write for the purpose of appearing the 
            #error messages on the page without refreshing it

    return render(request, 'accounts/main.html', context)

Main.html ( кратко )

<label>Your login</label>
<input name="username-log" class="form-control" type="text" placeholder="Enter your login">

<label>Password</label>
<input name="password-log" class="form-control" type="password" placeholder="Enter your password">

   {% for message in messages %}
      <p id="messages" class="xerr"> {{message}} </p>
   {% endfor %}

<button name="login-btn" class="btn btn_100" type="submit">LOG IN</button>

Я вижу, что OP хочет информировать пользователей о том, что происходит, и решил использовать для этого фреймворк messages framework - это замечательно. Теперь возникает вопрос: "Как сделать это без обновления страницы?".

Как упоминает nigel239, придется использовать асинхронный JavaScript. Существуют различные статьи Q&As, которые объясняют, как отправлять формы асинхронно, например

Вернуться на верх