1
如果我做這樣的事情:在Django中,我如何查看我的用戶的所有屬性?
print request.user.is_authenticated()
然後真正被打印出來。然而,
print request.user
只是打印用戶名,即使'request.user'絕對不只是一個字符串。我怎樣才能讓所有的用戶屬性打印到控制檯?
如果我做這樣的事情:在Django中,我如何查看我的用戶的所有屬性?
print request.user.is_authenticated()
然後真正被打印出來。然而,
print request.user
只是打印用戶名,即使'request.user'絕對不只是一個字符串。我怎樣才能讓所有的用戶屬性打印到控制檯?
的方法有很多,如:
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)]
當你這樣做:
print request.user
模型方法__unicode__
被調用,它在打印,它返回什麼。爲了讓模型字段,它是需要明確的訪問:
print request.user.field_name
遍歷所有字段,這個鉤子可以用:
for f in request.user._meta.fields:
print f.name, getattr(request.user, f.name)