Django добавляет пользовательское действие в маршрутизатор без добавления метода

Предполагается ModelViewSet. Предполагается добавить новое действие к ModelViewSet, просто вернув сериализатор и не определяя новое действие/метод. Вот пример кода:

class ABViewSet(RGBaseViewSet):
    queryset = AB.objects.filter(~Q(status="Executed"))
    permissions_classes = IsAuthenticated

    def get_serializer_class(self):
        if hasattr(self, "action"):
            if self.action == "list":
                return ABSerializer
            elif self.action == "retrieve":
                return ABDataSerializer
            elif self.action == "mark_as_executed":
                return ABExecuteSerializer

Если метод @action(detail=True) mark_as_executed не добавлен, есть ли способ, которым маршрутизатор может возвращать данные с помощью этого сериализатора при вызове mark_as_executed и отсутствии определения представления / метода?

Если действие / представление определено, все, что оно будет делать, это возвращать данные сериализатора. Так зачем добавлять это представление, если мы можем заставить его работать как встроенные представления в ModelViewSet.

Спасибо.

Вернуться на верх