👻
【Django】Pythonで作るRest API【20Get LoginUser】
【20Get LoginUser】
YouTube: https://youtu.be/h2ozD_-EQ0A
今回はログインしている「User」のデータを取得するビューを実装します。
myapp/accounts/views.py
from django.shortcuts import render
from rest_framework.decorators import api_view
from rest_framework.response import Response
from .serializers import UserSerializer
# Create your views here.
@api_view(['GET'])
def getMe(request):
user = request.user
serializer = UserSerializer(user, many=False)
return Response(serializer.data)
ビューの作成ができましたら、
「urls.py」にビューの設定を行います。
myapp/accounts/urls.py
from django.urls import path
from .views import getMe
urlpatterns = [
path('me/', getMe, name='me'),
]
ここまでできましたら、
ローカルサーバーを起動して確認してみましょう。
こちらはブラウザでログインしている必要がありますので、
右上にメールアドレスが表示されていることを確認してください。
このままですとパスワードのように外部に表示されることが
好ましくないデータも表示されてしまいますので、
「serializers.py」でこちらの調整を行います。
myapp/accounts/serializers.py
from rest_framework import serializers
from django.contrib.auth.models import User
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['id', 'username', 'email']
上記の「fields」の部分に
取得したい「User」のフィールドをリストで設定すると
レスポンスで返すデータの調整ができるようになります。
Discussion