Следующий перенаправленный вид показывает анонимного пользователя, хотя вход в систему был успешным
У меня есть этот код. Однако, хотя я могу правильно войти в систему с установленным sessionid
, перенаправленный вид все еще указывает request.user.is_authenticated
как False. Любая помощь будет высоко оценена.
class TeacherLoginView(SuccessMessageMixin, TemplateView):
form_class = TeacherLoginForm
template_name = 'accounts/teacher-login.html'
success_message = 'Logged in Successfully!'
error_message = 'Staff ID or Password incorrect!'
def get(self, request):
form = self.form_class()
message = ''
return render(request, self.template_name, context={'form': form, 'message': message})
def post(self, request):
form = self.form_class(request.POST)
if form.is_valid():
user = TeacherBackend.authenticate(self, username=form.cleaned_data['staff_id'],
password=form.cleaned_data['password'],
)
if user is not None:
login(request, user, backend='accounts.backends.backends.TeacherBackend')
if request.GET.get('next') and request.user.is_authenticated:
return redirect(request.GET.get('next'))
return redirect('userviews:teacher-home')
else:
messages.error(self.request, self.error_message)
return render(request, self.template_name, context={'form': form})
Этот вид я пытаюсь перенаправить после успешного входа
class TeacherHomeView(LoginRequiredMixin, View):
template_name = 'userviews/teachers/index.html'
login_url = '/accounts/login-teacher/'
redirect_field_name = 'next'
Понял, что проблема была в пользовательском бэкенде auth, который я создал. Мне нужно было добавить метод get_user
. Спасибо и за этот ответ Ответ 1, Ответ 2
def get_user(self, user_id):
try:
return CustomUser.objects.get(pk=user_id)
except CustomUser.DoesNotExist:
return None