django - 该页面未正确重定向

时间:2017-03-08 15:11:07

标签: django django-allauth django-middleware

我有一个检查用户个人资料的中间件。如果auth用户没有配置文件,则重定向到用户配置文件。我的浏览器显示错误The page isn’t redirecting properly

class Check(MiddlewareMixin):
    def process_request(self, request):
        if request.user.is_authenticated():
            user = request.user
            try:
                profile = Profile.objects.get(user_id = user)
                if profile:
                    pass
            except ObjectDoesNotExist:
                return HttpResponseRedirect('/accounts/profile/')

我正在使用django-allauth

2 个答案:

答案 0 :(得分:5)

听起来你可能有一个无限的重定向循环。检查请求路径,如果用户尝试访问/accounts/profile/,则不要重定向。

class Check(MiddlewareMixin):
    def process_request(self, request):
        if request.user.is_authenticated() and request.path != '/accounts/profile/':
            ...

答案 1 :(得分:0)

确保您使用的是“正确”视图,就我而言,我使用的是:

视图

class Blog_View(View):
    model = Blog
    template_name = 'blog.html'

而不是

列表视图

class Blog_View(ListView):
    model = Blog
    template_name = 'blog.html'