<!-- The form markup -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
<div>
<h1 class="text-primary fw-bold text-center log-in-title">Log In</h1>
</div>
<div class="mt-3 text-center">
<!-- The form -->
<form class="mod-auth">
<div class="mb-3">
<input id="mod-auth-username" type="text" placeholder="Username" name="username" class="form-control" required>
</div>
<div class="mb-3">
<input id="mod-auth-password" type="password" placeholder="Password" name="password" class="form-control" required>
</div>
<div class="d-grid gap-2 mx-auto">
<button class="btn btn-primary" type="button">Log in</button>
</div>
</form>
<hr>
<h6>Don't have an account? <a href="/sign-up/?next={{request.path}}">Sign up</a></h6>
</div>
</div>
</div>
</div>
// AJAX Post request
$(document).on('submit', '.mod-auth', (e) => {
e.preventDefault();
console.log('hi');
$.ajax({
url: '/log-in/',
type: 'POST',
data: {
csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val(),
username: $('#mod-auth-username').val(),
password: $('#mod-auth-password').val(),
},
success: function() {},
});
});
# views.py
# This method already handles a log in page and the AJAX post request code given above sends request here.
def log_in(request):
if request.user.is_authenticated:
return redirect('/')
if request.method == 'POST':
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
if request.POST.get('next', ''):
return redirect(f"{request.POST.get('next', '')}")
return redirect(f"/{username}/")
else:
messages.error(request, 'Either the username or password is wrong! Note that your password and username are case sensitive')
return redirect(f'{request.path}?next={request.POST.get("next", "")}')
return render(request, 'log_in.html')
我的代码不起作用,我添加了一个jQuery表单提交事件,该事件不起作用。我无法找出问题所在。
该表单是模式(Bootstrap)的一部分,当用户尝试在不登录时单击“赞”按钮时会触发该模式,该模式包含一个表单,必须填写并提交,然后执行AJAX Post请求并数据将发送到views.py。
谢谢。感谢您的帮助。
兄弟,按钮类型应为submit
。
<button class="btn btn-primary" type="submit">Log in</button>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句