Django url 按 id 分配路由

Django url dispetcher route by id

这是我的 views.py

class UserAPI(generics.RetrieveAPIView):
    permission_classes = [permissions.IsAuthenticated,]
    serializer_class = UserSerializer

    def get_object(self):
        return self.request.user

这是我的url.py

path('V1/api/users/', UserAPI.as_view(), name='user'),

当我输入 id、邮件、用户名并转到

localhost/v1/api/users/1  want to open user's which id is 1.

什么是最佳解决方案?

path('V1/api/users/<int:user_id>', UserAPI.as_view(), name='user'),


class UserApi(generics.RetrieveAPIView):

    permission_classes = [permissions.IsAuthenticated,]
    serializer_class = UserSerializer

    def get(self, request, user_id, format=None):

        print(user_id) # do whatever you want with the user id

您的问题来自您的 url 设置,您应该将主键添加到 url。改变这个

path('V1/api/users/', UserAPI.as_view(), name='user')

对此

path('V1/api/users/<pk>/', UserAPI.as_view(), name='user'),