如何在Django Rest Framework JSON API中的Viewset的ad-hoc方法上设置资源名称?

时间:2017-02-14 07:25:08

标签: python django django-rest-framework json-api

我正在使用Django 1.10和DRF 3.5以及Django Rest Framework JSON API 2.1.1。我有一个遵循ModelViewset的正常模式的Viewset,但我需要添加一个ad-hoc,如下所示:

class EnvoiViewSet(viewsets.ModelViewSet):
    queryset = Envoi.objects.none()
    serializer_class = EnvoiSerializer
    filter_class = EnvoiFilter
    ordering_fields = ('date_envoi',)

    # ....

    @decorators.list_route(methods=['post'])
    def ad_hoc_method(self, request):
        #....

我的问题是,我希望change the resource name用于该方法,但用于该类。这可能与装饰者或类似的东西?例如:

@decorators.list_route(methods=['post'])
@resource_name('SpecialEnvoi')
def ad_hoc_method(self, request):
    #....

1 个答案:

答案 0 :(得分:1)

ViewSet是资源的控制者。在ViewSet上设置方法并将其与其他资源相关联是没有意义的。

使用装饰器编写一个函数来创建一个API入口点或为它获取一个新的ViewSet