1

我对 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?任何帮助都会很棒。

4

1 回答 1

0

也许尝试:

from django.http import HttpResponseRedirect

if not request.user.is_authenticated():
  return HttpResponseRedirect('desired URL')  

在 HttpResponseRedirect 对象之前强调返回很重要。

于 2017-10-21T21:57:45.583 回答