この記事では、Django Rest Framework、Django Rest Authを利用するプロジェクトで、user_idを取得する方法を解説しています。
◆動作検証環境
・ローカル環境:mac Catalina
・Django:3.1.2
・django-allauth:0.43.0
・DjangoRESTframework: 3.12.1
・django-rest-auth: 0.9.5
・django-allauth:0.43.0
・DjangoRESTframework: 3.12.1
・django-rest-auth: 0.9.5
*紹介しているプロジェクトには、CustomUser を利用しています。
スポンサードリンク
Django Rest Frameworkの場合
serializers,py
1 2 3 4 5 6 7 | class UserSerializer(serializers.ModelSerializer): class Meta: model = CustomUser fields = ('id',) # fields = '__all__' 全てのfieldsを利用する時はこのようにする。 |
views.py
1 2 3 4 5 6 7 8 9 | class ManageUserView(generics.RetrieveUpdateAPIView): serializer_class = UserSerializer authentication_classes = (TokenAuthentication,) permission_classes = (IsAuthenticated,) def get_object(self): return self.request.user |
urls.py
1 2 3 4 5 | urlpatterns = [ path('myself/', ManageUserView.as_view(), name='myself'), ] |
Django Rest Authの場合
serializers,py
1 2 3 4 5 6 7 | class UserSerializer(serializers.ModelSerializer): class Meta: model = CustomUser fields = ('id',) # fields = '__all__' 全てのfieldsを利用する時はこのようにする。 |
views.py
1 2 3 4 5 6 7 8 9 10 | class UserViewSet(viewsets.ModelViewSet): queryset = CustomUser.objects.all() serializer_class = UserSerializer authentication_classes = (TokenAuthentication,) permission_classes = (IsAuthenticated,) def get_queryset(self): return CustomUser.objects.filter(id=self.request.user.id) |
urls.py
1 2 3 4 5 6 7 8 | router = routers.DefaultRouter() router.register('user', UserViewSet) urlpatterns = [ path('', include(router.urls)), ] |
以上、Django Rest Framework、Django Rest Authを利用するプロジェクトで、user_idを取得する方法を紹介しました。