Djangorest框架与GET和POST相同的通用创建视图

2024-10-04 09:21:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用一个通用的createapieview在数据库中保存一个模型。我的代码是:

class AppointmentCreateAPIView(generics.CreateAPIView):
    permission_classes = (AppointmentCreatePermission,)
    queryset = Appointment.objects.all()
    serializer_class = AppointmentSerializer

在我的urls.py文件中,我有这样一个:

^{pr2}$

这个url显然支持POST操作。但是,我希望使用相同的url来处理GET请求,该请求将获取填充约会创建表单所需的数据。我知道我可以使用不同的url来获取和发布,但这不是我想要的。我是否可以保留相同的url,但使用不同的HTTP动词,视图可以同时处理GET和POST请求?在


Tags: 代码模型数据库urlgetpostclassclasses
1条回答
网友
1楼 · 发布于 2024-10-04 09:21:59

您可以通过手动将get方法添加到视图中来完成此操作,该方法如下所示。下面的代码可能不起作用,但会给你大致的想法。在

from rest_framework.response import Response

class AppointmentCreateAPIView(generics.CreateAPIView):
    permission_classes = (AppointmentCreatePermission,)
    queryset = Appointment.objects.all()
    serializer_class = AppointmentSerializer

    def get(self, request, *args, **kwargs):
        serializer = AppointmentSerializer({your_data})
        return Response(serializer.data)

相关问题 更多 >