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

How to set resource name on an ad-hoc method of Viewset in 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 用于方法,但 而不是 用于 class。这可能与装饰器或类似的东西有关吗?例如:

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

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

要么编写一个带有装饰器的函数来创建一个 API 入口点,要么为其获取一个新的 ViewSet