
您也可以使用
APIView,不需要模型
class MyOwnView(APIView): def get(self, request): return Response({'some': 'data'})和
使用ModelViewSeturlpatterns = [ url(r'^my-own-view/$', MyOwnView.as_view()),]
您已将自定义JSON放入get_queryset中,这是错误的。如果您想使用
ModelViewSet,仅此一项就足够了:
class TestViewSet(viewsets.ModelViewSet): queryset = Test.objects.all() serializer_class = TestSerializer
这种
ModelViewSet带有默认实现
.list(),
.retrieve(),
.create(),
.update(),和
.destroy()。哪些可供您根据需要覆盖(自定义)从
.retrieve()和/或
.list()中返回自定义JSON
ModelViewSet
例如,重写
.retrieve()以在检索单个对象时返回自定义视图。我们可以看一下默认实现,如下所示:
def retrieve(self, request, *args, **kwargs): instance = self.get_object() serializer = self.get_serializer(instance) return Response(serializer.data)
因此,以返回自定义JSON为例:
class TestViewSet(viewsets.ModelViewSet): queryset = Test.objects.all() serializer_class = TestSerializer def retrieve(self, request, *args, **kwargs): return Response({'something': 'my custom JSON'}) def list(self, request, *args, **kwargs): return Response({'something': 'my custom JSON'})欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)