我正在使用Django rest框架来设计API,我有以下代码
from .views import UserView, UserDetails
urlpatterns = [
url(r'^user/', UserView.as_view(), name = 'users'),
url(r'^user/(?P<user_id>[0-9]+)/', UserDetails.as_view(), name = 'users_detail'),
]
from rest_framework.decorators import api_view
from rest_framework import permissions
class UserView(APIView):
def get(self, request, format=None):
print "I am in userview !!"
.....
.....
return Response(users.data)
def post(self, request, format=None):
.....
.....
return Response(data)
class UserDetails(APIView):
permission_classes = (permissions.IsAuthenticated,)
def get(self, request, *args, **kwargs):
import ipdb; ipdb.set_trace()
return Response('OK')
我正在尝试的终端位于
之下http://localhost:8000/api/user/
http://localhost:8000/api/user/1/
我遇到的问题是上述网址请求都是同一个UserView
类,但实际上是
http://localhost:8000/api/user/
应该转到UserView
上课,这是正确的,现在正在发生,
并且http://localhost:8000/api/user/1/
应该转到UserDetails
课程,该课程现在没有发生,请求仍然是“用户视图”。上课,我不知道为什么,有人可以让我知道我的代码中有什么问题吗?
答案 0 :(得分:3)
您需要终止您的网址格式。
url(r'^user/$', ...),
url(r'^user/(?P<user_id>[0-9]+)/$', ...),