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'),
这是我的 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'),