2012-12-04 16 views
28

djangoテンプレートからユーザ情報を取得する最良の方法は何ですか?ユーザーがディスプレイ「ようこそ[ユーザー名]」 djangoテンプレートのユーザ情報を取得

  • そうでない場合は、ログインボタンを表示し、ログインしている場合

    1. は例えば、私はしたい場合。

    私はジャンゴ登録/認証

  • +0

    可能な複製(http://stackoverflow.com/questions/422140/how-to-access-the-user [Djangoテンプレートでユーザープロファイルにアクセスする方法?] -profile-in-a-django-template) –

    答えて

    38

    現在のDjangoのための別の方法バージョン:

    {% if user.is_authenticated %} 
        <p>Welcome, {{ user.get_username }}. Thanks for logging in.</p> 
    {% else %} 
        <p>Welcome, new user. Please log in.</p> 
    {% endif %} 
    


    注:

    • 使用request.user.get_username()テンプレートでuser.get_username &ビューインチ属性は直接usernameです。 Source
    • このテンプレートコンテキスト変数は、RequestContextが使用されている場合に使用できます。
    • django.contrib.auth.context_processors.authはデフォルトで有効になって&あなたはdjango.core.context_processors.requestテンプレートのコンテキストプロセッサを有効にする必要はありません変数ユーザー
    • が含まれています。

    出典:のhttps://docs.djangoproject.com/en/dev/topics/auth/default/#authentication-data-in-templates

    36
    {% if request.user.is_authenticated %}Welcome '{{ request.user.username }}' 
    {% else %}<a href="{% url django.contrib.auth.login %}">Login</a>{% endif %} 
    

    を使用して、あなたのsettings.pyにインストールrequestテンプレートのコンテキストプロセッサを持っていることを確認しています:

    TEMPLATE_CONTEXT_PROCESSORS = (
        ... 
        'django.core.context_processors.request', 
        ... 
    ) 
    
    関連する問題