Я следую некоторым основным учебным пособиям по Django. У меня есть следующие в моем views.py:Django auth - успех и неудача приводят к такому же поведению
def login(request, onsuccess='/', onfail='/login/'):
c = {}
c.update(csrf(request))
if request.method == "GET":
return render_to_response('login.html', {'method': 'get'}, context_instance=RequestContext(request))
else:
user = authenticate(username=request.POST.get('username'), password=request.POST.get('password'))
if user is not None:
login(request, user)
return redirect(onsuccess)
else:
return redirect(onfail)
Я знаю, что логика GET/POST работает, потому что у меня была другая return_to_render заявление после того, как пост, чтобы отправить «метод»: «после» к мнению, в попытке отладки. Я просто печатаю это значение в представлении, чтобы я мог видеть GET или POST в зависимости от состояния.
Когда я заменил это логикой аутентификации, кажется, что он не возвращает действительный объект пользователя, потому что я перенаправляюсь обратно к логину. Я попытался пройти аутентификацию из оболочки, и она работала нормально.
Любые мысли о том, что еще я могу сделать для отладки?
Да, проверьте, что находится в 'request.POST'. Имеются ли учетные данные и соответствуют ли они тому, что находится в db? И прочитал на https://docs.djangoproject.com/en/dev/topics/forms/ –
да, это было - глупая ошибка. копировать/вставлять элементы имени пользователя/ввода формы из tut и не понимали, что у них нет атрибутов имени, поэтому ничего не приходило на мой POST через имена, которые, как я думал, были там. Я знаю лучше. Если вы хотите опубликовать свой комментарий в ответе, я отметю его правильно. – David