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.
Спасибо.