如果我这样做:
print request.user.is_authenticated()
然后打印出True。然而
print request.user
只是打印用户名,即使'request.user'绝对不仅仅是一个字符串。如何将所有用户属性打印到控制台?
答案 0 :(得分:5)
有很多方法,例如:
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)]
答案 1 :(得分:3)
执行此操作时:
print request.user
调用模型方法__unicode__
并打印它返回的内容。要获取模型字段,需要明确访问它:
print request.user.field_name
要迭代所有字段,可以使用此挂钩:
for f in request.user._meta.fields:
print f.name, getattr(request.user, f.name)