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 に答える