78

Django アプリケーションでログインしているユーザーに関する情報を取得するにはどうすればよいですか?

例えば:

誰がレビューを投稿したかを知るには、ログインしているユーザーのユーザー名を知る必要があります。

<form id='formulario' method='POST' action=''>
    <h2>Publica tu tuit, {{ usuario.username.title }} </h2>
    {% csrf_token %}
    {{formulario.as_p}}
    <p><input type='submit' value='Confirmar' /></p>
</form>

usuario.username.titleユーザー名を取得しますが、テンプレートでは、ビューからその情報を取得する必要があります。

4

9 に答える 9

110

request オブジェクトを使用して、ログインしているユーザーを見つけることができます

def my_view(request):
    username = None
    if request.user.is_authenticated():
        username = request.user.username

https://docs.djangoproject.com/en/2.0/releases/1.10/によると

バージョン Django 2.0 では、構文が次のように変更されました。

request.user.is_authenticated
于 2013-06-03T22:00:31.923 に答える
46

request.user.get_username()またはrequest.user.username、前者が優先されます。

Django のドキュメントは次のように述べています。

User モデルは交換できるため、username 属性を直接参照する代わりに、このメソッドを使用する必要があります。

PS テンプレートの場合は、{{ user.get_username }}

于 2014-08-29T17:51:06.020 に答える
-1

テンプレートの場合、使用できます

{% firstof request.user.get_full_name request.user.username %}

firstof は、null でない場合は最初のものを返し、それ以外の場合は 2 番目のものを返します

于 2021-01-24T09:26:00.930 に答える