【发布时间】:2021-06-08 16:34:27
【问题描述】:
我在 Django rest 框架中使用视图集。我已经看到很多例子表明到处都在使用序列化程序。如果我不想使用序列化程序怎么办,或者如果我没有模型可以使用序列化程序怎么办?而我只想返回简单的响应数据?
以下只是我如何使用它的示例。
from rest_framework.response import Response
from rest_framework import status, viewsets
class UserViewSet(viewsets.ViewSet):
def create(self, request):
data = {'name': 'Shiv', 'email':'example@gmail.com'}
return Response(data, status=status.HTTP_201_CREATED)
如您所见,我没有序列化程序,并且代码运行良好。那么这是一个好习惯吗?
(我在 Code Review 门户中发布了相同的问题,但没有得到足够的回应)。
【问题讨论】:
-
委托人?不,好的做法?通常是的,因为序列化器工作双向:它具有序列化对象、反序列化以进行创建、反序列化以进行更新等的逻辑。
-
ViewSet的主要收获是,不需要创建不同的url eg: 1. list : /api 2. detail /api/id 3. post /api/ 4. put /api /id/ 5. 修补 /api/id , 6 删除 /api/id ,因此如果视图集附加到路由器,则上述所有 urls/方法都将起作用。在您的情况下,只需使用 APIView
-
谢谢@Jisson...我明白了...
标签: python-3.x django django-rest-framework django-serializer