首页 > 解决方案 > 在Django的另一个类视图中调用类视图

问题描述

似乎是这个的副本但仍然:我有JobCreateViewV1(旧的)视图类,它以一种方式与模型一起使用,升级后,我创建了JobCreateViewV2(新的)类,它将另一个条目添加到第一次调用的另一个模型条目。从头等舱获得响应并将其传递给第二个的最佳方法是什么?

这是我的课程: JobCreateView

class JobCreateView(AuthenticatedView, generics.GenericAPIView):
    #some seralizer
    serializer_class = JobSerializerForUser

    def post(self, request):
        #....yada yada yada...
        job='model is here'
        return Response(status=status.HTTP_201_CREATED, data=self.serializer_class(job, many=False).data)

JobCreateViewV2

class JobCreateViewV2(AuthenticatedView, generics.ListAPIView):
    serializer_class = ResponsibleTechnicianSerializer

    def post(self, request):
        JobCreateViewV1Response = JobCreateViewV1.post(self, request)
        # ...yada yadayada...

        #and here JobCreateViewV1Response equals to {}

旧网址完美运行,但是当我调用 V2 时,来自 V1 调用的响应的数据部分等于{}. 是否会出现此问题,因为我JobCreateView以不正确的方式调用并且序列化程序没有按应有的方式工作?我试过使用ShowAppsView.as_view()(self.request)方法,但似乎不是我需要的。

标签: pythondjangodjango-class-based-views

解决方案


OldViewClass.post(self, request)有效,但我的问题是旧类继承了新类序列化程序,所以旧序列化程序应该显式传递给旧类。


推荐阅读