2013-05-13 38 views
1

如果我做這樣的事情:在Django中,我如何查看我的用戶的所有屬性?

print request.user.is_authenticated() 

然後真正被打印出來。然而,

print request.user 

只是打印用戶名,即使'request.user'絕對不只是一個字符串。我怎樣才能讓所有的用戶屬性打印到控制檯?

回答

5

的方法有很多,如:

print dir(request.user) 

或(這可能是首選)

print request.user.__dict__ 

或(見秸稈的擴展回答,基本上沒有什麼__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)] 
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) 
相關問題