Django - Как предотвратить перезагрузку формы при неправильном вводе данных
У меня есть следующая форма входа в систему:
<input type="text" placeholder="Username" name = "username" />
<input type="password" placeholder="Password" name = "password" />
<button type = "submit" name = "submit" value = "sign_in" >Log In</button>
{% for message in messages %}
<p id = "messages" style = "color:red; font-weight: bold;" class = "errormessage">{{message}}</p>
{% endfor %}
В случае, если пользователь неправильно вводит свое имя пользователя/пароль, я отображаю ошибку, работая со следующим представлением:
if (request.POST.get('submit') == 'sign_in'):
#-----------SIGN IN FUNCTION----------
context = {}
if request.user.is_authenticated:
return HttpResponseRedirect("/levels/1") # redirect 2 dashboard
else:
if request.method == 'POST': # if user isnt already logged in
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password) #authenticate user
if user is not None: # if user exists
login(request, user)
return HttpResponseRedirect("/levels/1") # redirect to dashboard
else: # if user entered username/password wrong
context = {'ALERT':"Username OR password is incorrect"}
messages.error(request, 'Username OR password is incorrect')
Однако форма работает не так, как ожидалось. Когда пользователь неправильно вводит форму, страница обновляется, и пользователю приходится снова нажимать на кнопку Log In, чтобы увидеть ошибку (форма входа - это небольшой модал, который появляется)
Я хочу сделать так, чтобы форма не перезагружалась, если пользователь неправильно вводит имя пользователя/пароль, так как я хочу, чтобы у него был шанс увидеть ошибку и исправить ее