这是我的代码:
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 ')
class UserViewSet(generics.ListCreateAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
class AllListing(generics.ListCreateAPIView):
queryset = Listing.objects.all()
serializer_class = AllListingSerializer
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。
答案 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
时发生这种情况。
非常明显但容易错过。