如果我这样做:
print request.user.is_authenticated()
然后打印 True。然而
print request.user
即使'request.user'绝对不仅仅是一个字符串,也只是打印用户名。如何将所有用户属性打印到控制台?
如果我这样做:
print request.user.is_authenticated()
然后打印 True。然而
print request.user
即使'request.user'绝对不仅仅是一个字符串,也只是打印用户名。如何将所有用户属性打印到控制台?
有很多方法,例如:
print dir(request.user)
或(这可能是首选)
print request.user.__dict__
或(参见 stalk 的扩展答案,基本上是做什么__dict__
的)
print ["{0}: {1}".format(field.name, getattr(request.user, field.name)) for field in request.user._meta.fields]
或(如果你只想要方法)
print [attr for attr in dir(request.user) if callable(attr)]
当你这样做时:
print request.user
调用模型方法__unicode__
并打印它返回的内容。要获取模型字段,需要显式访问它:
print request.user.field_name
要遍历所有字段,可以使用这个钩子:
for f in request.user._meta.fields:
print f.name, getattr(request.user, f.name)