2017-05-25 59 views
0

我正在使用通用CreateAPIView在数据库中保存模型。这里是我的代码:Djangorest框架相同使用GET和POST创建视图

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

而且在我urls.py文件,我有这样的:

urlpatterns[ 
    url(r'^appointments/create', AppointmentCreateAPIView.as_view()), 
] 

此网址显然支持POST操作。但是,我想使用这个相同的URL来处理GET请求,该请求将获取填充约会创建表单所需的数据。我明白,我可以使用单独的网址获取和发布,但这不是我所期待的。是否有可能保持相同的URL,但使用不同的HTTP动词,视图将能够处理GET和POST请求?

+0

当使用'GET'方法时出现任何错误 –

+0

我准备好更改我的逻辑,但我想保持url相同。是否有可能使用相同的URL调用两个不同的视图,但使用不同的http动词? –

+0

我认为这是不可能的。不同的网址,但功能相同,但在你的情况下GET方法完全关闭设计。 –

回答

1

您可以通过手动将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)