0

Facebookでのロギングにpythonソーシャル認証を使用して小さなプロジェクトを作成しました。リンクでpythonソーシャル認証の例を参照しました。ユーザー名を取得できます。しかし、のrequest.nameような他のデータを取得するにはどうすればよいですか評価されるfirst_namelast_nameemail

ビューのコード例は次のとおりです。

def home(request):
   context = RequestContext(request,
                       {'request': request,
                        'user': request.user})
   return render_to_response('home.html',
                         context_instance=context)
4

1 に答える 1

1

1 つの方法を次に示します。request.userというヘルパー メソッドがis_authenticatedあり、次のように使用できます。

ctx = {
       'user' : request.user
      }

if request.user.is_authenticated():
    ctx.update({
         'first_name': request.user.first_name,
         'last_name': request.user.last_name,
         'email' : request.user.email
    })

現在、追加の属性は 、ユーザーが認証されている場合にのみauth存在します。これは、 django のモデルを使用していると仮定した場合です。そうでない場合は、それに応じてモデル フィールド名を変更してください。

余談ですが、リクエスト オブジェクト全体をコンテキストで渡すべきではありません。関連する情報のみを抽出し、コンテキストで送信する必要があります。

とにかく、テンプレートからこれらすべての値にアクセスできます。例:

{% if request.user.is_authenticated %}
    {{request.user.username}}
    {{request.user.email}}
    {# etc.. #}
{% endif %}

コンテキストで明示的に何かを送信する必要はありません。requestオブジェクトはすでにすべてを持っています

于 2014-10-20T18:38:12.527 に答える