1

如果我这样做:

print request.user.is_authenticated()

然后打印 True。然而

print request.user

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

4

2 回答 2

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)]
于 2013-05-13T11:03:19.107 回答
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)
于 2013-05-13T11:03:44.053 回答