首页 > 解决方案 > 获取登录用户详细信息时出错

问题描述

我正在使用 Django 2.2.6。

登录代码

class loginController(View):
    def post(self, request):
        username = request.POST.get('username')
        password = request.POST.get('password')
        userobj = authenticate(username = username, password = password)
        if(userobj != None):
            login(request, userobj)
            return redirect('myprofileapp:profile')

用户通过身份验证后,导航到个人资料页面。当这条线执行if(request.user.is_authenticated):时,我得到一个错误。

class accountController(View):
    def get(self, request):
        if(request.user.is_authenticated):
            return HttpResponse(request.user)

“用户”对象不可迭代

编辑 1

class accountController(View):
    def get(self, request):
        if(request.user.is_authenticated):
            print(request.user.username)
            return HttpResponse("ok")
        else:
            return HttpResponse("not ok")

什么都没有打印。就可以在上面的代码中打印出来了。

标签: django

解决方案


你不应该return HttpResponse(request.user),因为它不是一个可迭代的对象。它只是 AuthenticationMiddleware 的 SimpleLazyObject。


推荐阅读