У меня проблема, которую я просто не могу понять вообще. Это две части.
У меня есть заставка, которая требует, чтобы пользователи вводили бета-код. Если код действителен, они перенаправляются на страницу регистрации. Если они зарегистрированы правильно, они проходят аутентификацию в Django и перенаправляются на домашнюю страницу сайта. На всех страницах сайта, кроме заставки и регистрации, есть декораторы @login_required.
Теперь, как ни странно, некоторые из моих тестовых пользователей утверждают, что они вошли в систему и затем перенаправлены на случайную заставку. Я не могу воспроизвести это, и некоторые из моих других тестеров также не могут воспроизвести эту ошибку. Я совсем не понимаю.
Еще более странным является тот факт, что я вообще не могу успешно аутентифицировать пользователя в IE8. Он просто перенаправляет меня обратно на заставку в IE8, хотя тот же код работает для меня в других браузерах. Но подождите, это еще не все, сегодня я протестировал его на компьютере друга, а IE8 работал на их компьютере.
Какого черта, я так расстроен. Некоторые основные мысли о том, где я могу начать с этого?
EDIT:
Вот мой вид страницы-заставки:
def splash(request):
error=''
#request.session.set_test_cookie()
if request.method=="POST":
#if request.session.test_cookie_worked():
# request.session.delete_test_cookie()
#else:
# cookie_error="You must enable cookies in your browser to use our login system. Our cookies will not track your behavior outside this site or do anything else malicious"
# return render_to_response("website/splash.html", {'cookie_error':cookie_error}, context_instance=RequestContext(request))
if request.POST.get('email_list',''):
beta_testform=Beta_TestForm(request.POST)
if beta_testform.is_valid():
beta=beta_testform.save()
return HttpResponseRedirect('/splash/?mls=True')
else:
email_error="Please enter a valid email address"
return render_to_response("website/splash.html", {'email_error':email_error},context_instance=RequestContext(request))
if request.POST.get('code'):
hardcode='codehere'
code=request.POST.get('code','')
if hardcode==code:
request.session['beta']=True
return HttpResponseRedirect('/splash/register/')
return HttpResponseRedirect('/')
else:
beta_error='Please enter a valid Beta code'
return render_to_response("website/splash.html", {'beta_error':beta_error}, context_instance=RequestContext(request))
Вот ссылка на другую ветку, которую я начал (которая осталась без ответа). Содержит мой просмотр страницы регистрации
https://stackoverflow.com/questions/5758598/decorator-or-session-fail-bug-only-occurs-for-of-users
ОБНОВЛЕНИЕ ... очевидно, что эта прерывистая сессия сеансов была проблемой и для других людей. Сессия Django периодически пропадает сразу после входа в систему