Регистрация идет через JS-скрипт, который отсылает запрос на сервер, после чего идет релоад страницы и подгружаются все зависимости. Проблема заключается в том, что время от времени появляется CRSF ошибка при регистрации, и я не могу понять, почему.
Форма<form action="/registration/" method="post">
{% csrf_token %}
{{ form.as_p }}
<input id="submit" class="button" type="submit" value="Зарегистрироваться"> <a class="login_registration"
</form>
JS-скрипт<script>
$('#registration_form').submit(function (e) {
e.preventDefault();
var m_username = $('#username_reg').val();
var m_email = $('#email_reg').val();
var m_password1 = $('#password1_reg').val();
var m_password2 = $('#password2_reg').val();
$.ajax({
type: "POST",
url: {% url 'registration' %},
data: {
"username": m_username,
"email": m_email,
"password1": m_password1,
"password2": m_password2,
"csrfmiddlewaretoken" : "{{ csrf_token }}"
},
success: function (data) {
if(data.reload) {
window.location.reload(true);
}
else {
$('#error_reg_message').html(data.error_login);
}
}
});
});
</script>
Вьюшкаdef registration(request):
if request.POST:
username = request.POST.get('username', '')
email = request.POST.get('email', '')
password1 = request.POST.get('password1', '')
password2 = request.POST.get('password2', '')
if password1 == password2:
User.objects.create_user(username=username, email=email, password=password1)
newuser = auth.authenticate(username=username, password=password1)
auth.login(request, newuser)
json = {
"reload": "reload",
}
return JsonResponse(json, safe=False,)