在Django中,如何查看用户的所有属性?

Hoa*_*Hoa 1 python django django-models

如果我这样做:

print request.user.is_authenticated()
Run Code Online (Sandbox Code Playgroud)

然后打印True.然而

print request.user
Run Code Online (Sandbox Code Playgroud)

只是打印用户名,即使'request.user'绝对不仅仅是一个字符串.如何将所有用户属性打印到控制台?

Hed*_*ide 5

有很多方法,例如:

print dir(request.user)
Run Code Online (Sandbox Code Playgroud)

或(这可能是首选)

print request.user.__dict__
Run Code Online (Sandbox Code Playgroud)

或者(参见stalk的扩展答案,基本上做了什么__dict__)

print ["{0}: {1}".format(field.name, getattr(request.user, field.name)) for field in request.user._meta.fields]
Run Code Online (Sandbox Code Playgroud)

或者(如果你只是想要方法)

print [attr for attr in dir(request.user) if callable(attr)]
Run Code Online (Sandbox Code Playgroud)