django - 获取登录用户详细信息时出错
问题描述
我正在使用 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")
什么都没有打印。就可以在上面的代码中打印出来了。
解决方案
你不应该return HttpResponse(request.user)
,因为它不是一个可迭代的对象。它只是 AuthenticationMiddleware 的 SimpleLazyObject。
推荐阅读
- java-8 - Java流:将一个对象的列表转换为另一个
- php - 如何使用 PHP 令牌或会话保护 mp4 文件
- python - Pandas、系列 str 访问器和 SettingWithCopyWarning
- r - 地图上的重复值:传单地图
- android - 使用带关系的房间返回错误
- python - 使用 Python 查找 Selenium 元素
- javascript - 关于护照序列化/反序列化用户中的回调函数的困惑
- linux - 由于某些未知原因,在此邮件脚本中获取此 KeyError
- ag-grid - 如何在 ag-grid 中捕获行悬停事件?
- repast-simphony - Repast:批量运行导致 UTF-8 损坏的字符