Делаю AJAX регистрацию. Столкнулся с ситуацией, что в юзер id пользователей скачет (100, 112, 113, 124) итд. Юзер ID, которых нет - отдают ошибку 500.
Сначала выявил ошибку с csrf токеном, если юзер перезагружал страницу (убрал проверку на токен), затем были ошибки при скликивании (юзер несколько раз нажимал создать аккаунт - поставил проверку на существующего юзера). Все равно идут 500 ошибки.
В чем может быть дело?
@csrf_exempt
def registration(request):
if request.POST:
username = request.POST.get('username', '')
email = request.POST.get('email', '')
try:
User.objects.get(email=email)
json = {
"error_login": "Такой пользователь уже существует<br>Перезагрузите страницу, возможно вы уже вошли",
}
return JsonResponse(json, safe=False,)
except User.DoesNotExist:
password1 = request.POST.get('password1', '')
password2 = request.POST.get('password2', '')
if str(request.POST.get('checkox', '')) == "18": // проверка капчей на число от простых ботов
if password1 == password2:
User.objects.create_user(username=username, email=email, password=password1)
newuser = auth.authenticate(username=username, password=password1)
auth.login(request, newuser)
# Созданием one-to-one модель Profile и привязываем её к модели User
current_user = request.user
profile_obj = Profile(user_id=current_user.id)
profile_obj.save()
json = {
"reload": "reload",
}
return JsonResponse(json, safe=False,)
else:
json = {
'error_login': "пароли не совпадают",
}
return JsonResponse(json, safe=False,)
else:
json = {
'error_login': "неверная валидация поля",
}
return JsonResponse(json, safe=False,)
else:
json = {
'error_login': "произошла ошибка сервера",
}
return JsonResponse(json, safe=False,)