Вопрос:
Я относительно новичок в django и CBV, и я пытаюсь понять, как перенаправить пользователя, если пользователь не аутентифицирован в методе post класса ListView. Таким образом, код выглядит следующим образом:
#views.py from django.shortcuts import render class MyListView(ListView): def post( self, request, *args, **kwargs ): if not request.user.is_authenticated(): print «user NOT authenticated» return render(request, ‘/site_templates/home.html’) # does not redirect # else: print «user IS authenticated» # do some stuff: this part works just fine #
Когда я пытаюсь это сделать, и когда пользователь не аутентифицирован, код, похоже, не перенаправляет меня на требуемый шаблон. Не уверен, что мне не хватает.
Можно ли перенаправить пользователя сюда в TemplateView? Любая помощь будет большой.
Лучший ответ:
Возможно, попробуйте:
from django.http import HttpResponseRedirect if not request.user.is_authenticated(): return HttpResponseRedirect(‘desired URL’)
Важно подчеркнуть возврат к объекту HttpResponseRedirect.