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

时间:2014-11-14 05:53:31

标签: 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 ')

views.py

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

class AllListing(generics.ListCreateAPIView):
    queryset = Listing.objects.all()
    serializer_class = AllListingSerializer

urls.py

urlpatterns = patterns('',
                        url(r'^$', apiview.UserViewSet),
                        url(r'^listings/$', apiview.AllListing),
                        )

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

  

init ()需要1个位置参数但是2个被赋予

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

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

2 个答案:

答案 0 :(得分:7)

您应该为每个API视图致电.as_view()

urlpatterns = patterns('',
                       url(r'^$', apiview.UserViewSet.as_view()),
                       url(r'^listings/$', apiview.AllListing.as_view()),
                      )

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

答案 1 :(得分:4)

当我在我的自定义function MyObject() { this.ViewModel.healthData.get(this.ViewModel.healthData.set); } MyObject.prototype = { ViewModel: { healthData: { data: null, set: function (result) { console.log("data from set"); this.data = ko.mapping.fromJS(result); }, get: function (callback) { if (this.data === null) { $.ajax({ url: "/api/Health", type: 'GET', async: true, }).done(callback); } else { console.log("direct data"); return this.data; } } } } }; 课程中延长generics.GenericAPIView而不是viewsets.GenericViewSet时发生这种情况。

非常明显但容易错过。