请求未发送到django网址中的正确视图

时间:2017-05-10 08:39:07

标签: django request django-rest-framework django-urls

我正在使用Django rest框架来设计API,我有以下代码

urls.py

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'),
]

views.py

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课程,该课程现在没有发生,请求仍然是“用户视图”。上课,我不知道为什么,有人可以让我知道我的代码中有什么问题吗?

1 个答案:

答案 0 :(得分:3)

您需要终止您的网址格式。

url(r'^user/$', ...),
url(r'^user/(?P<user_id>[0-9]+)/$', ...),