django rest框架 - 无法获得基于类的视图权限

dev*_*jim 6 django django-rest-framework

这是我的代码:

serializers.py

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ( 'username', 'email')


class AllListingSerializer(serializers.ModelSerializer):
    class Meta:
        model = Listing
        fields = ('name', 'desc', 'thumbnail', 'office_no', 'mobile_no', 'email', 'web ')
Run Code Online (Sandbox Code Playgroud)

views.py

class UserViewSet(generics.ListCreateAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer

class AllListing(generics.ListCreateAPIView):
    queryset = Listing.objects.all()
    serializer_class = AllListingSerializer
Run Code Online (Sandbox Code Playgroud)

urls.py

urlpatterns = patterns('',
                        url(r'^$', apiview.UserViewSet),
                        url(r'^listings/$', apiview.AllListing),
                        )
Run Code Online (Sandbox Code Playgroud)

但是当我转到它显示的基本网址时

init()接受1个位置参数,但给出2个

当我转到'/ listings /'网址时,它会给我404 Page Not Found,但我在db中的列表很少.

我在django很新.我无法弄清楚他们有什么问题.我在virtualwrappr,python 3.4中使用Django 1.7.1.

ale*_*cxe 7

您应该调用.as_view()每个API视图:

urlpatterns = patterns('',
                       url(r'^$', apiview.UserViewSet.as_view()),
                       url(r'^listings/$', apiview.AllListing.as_view()),
                      )
Run Code Online (Sandbox Code Playgroud)

此外,请考虑使用REST框架Routers,它为您提供了一种简单,快速和一致的方法,将您的视图逻辑连接到一组URL.

  • 但是当我尝试使用路由器时,它会给我`as_view()需要1个位置参数但是2个被给出错误. (8认同)