#django #function #authentication
Вопрос:
Функция, позволяющая пользователю войти в систему следующим образом=>
Очевидно, что эта ошибка всплывает
def login_view(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password =password )
if user is not None:
login(request, user)
return HttpResponseRedirect(reverse("index"))
elif user is None:
return render(request, "covi/signin.html", {
"message": "Invalid username and/or password."
})
else:
return render(request, "covi/signin.html")
def login_view(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password =password )
if user is not None:
login(request, user)
return HttpResponseRedirect(reverse("index"))
elif user is None:
return render(request, "covi/signin.html", {
"message": "Invalid username and/or password."
})
else:
return render(request, "covi/signin.html")
Ответ №1:
Это потому user = authenticate(request, username=username, password =password)
, что работает только в том случае, если request.method == 'POST'
. Если вы сделаете запрос на ПОЛУЧЕНИЕ, пользователь не будет назначен.
def login_view(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password =password )
if user is not None:
login(request, user)
return HttpResponseRedirect(reverse("index"))
elif user is None:
return render(request, "covi/signin.html", {
"message": "Invalid username and/or password."
})
return render(request, "covi/signin.html")
Комментарии:
1. Сделал это 2 с той же проблемой :((( Спасибо за Вашу помощь!
2. есть еще одна проблема : форма пуста, когда я запускаю свой сервер 🙁
3. Представление covi.views.login_view не вернуло объект HttpResponse. Вместо этого он ничего не вернул.
4. И ДА, Ваш комментарий-абсолютная победа, Эне П. Сейчас я сталкиваюсь с другой проблемой. Все хорошо.