[Django] ログイン中のユーザ情報を取得

利用シーン

  • ログイン中のユーザ情報で処理を変えたい
  • ログイン中のユーザ情報をcontext_data(ctx)をTemplateに渡したい
  • ログイン情報を元に別のデータを取得する

ファンクションベースビュー

request.user

requestオブジェクトとして渡されているので呼び出すこと出来る。

ユーザオブジェクトを取得サンプル

def index(request):
    user = request.user

ユーザIDを取得サンプル

def index(request):
    user = request.user.id

クラスベースビュー

self.request.user

継承した各種Viewクラスでインスタンス変数として定義されているので利用。

ユーザオブジェクトを取得サンプル

class IndexView(TemplateView):
    template_name = 'index.html'

    def get(self, request, **kwargs):
        ctx = {
            'user': self.request.user
        }
        return self.render_to_response(ctx)

ユーザ名を取得サンプル

class IndexView(TemplateView):
    template_name = 'index.html'

    def get(self, request, **kwargs):
        ctx = {
            'username': self.request.user.username
        }
        return self.render_to_response(ctx)
よかったらシェアしてね!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください