我正在使用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):
#....
答案 0 :(得分:1)
ViewSet
是资源的控制者。在ViewSet
上设置方法并将其与其他资源相关联是没有意义的。
使用装饰器编写一个函数来创建一个API入口点或为它获取一个新的ViewSet
。