DRF: Как установить правильное имя_вида с украшением действия в наборе представлений

У меня есть следующий метод декоратора действия, я притворяюсь, что фильтрую учителей по модели:

@action(detail=True, methods=(['GET']))
def get_teachers_by_area(self, request, pk=None):
    teachers = self.get_serializer().Meta.model.objects.get_teachers_by_area(pk=pk)
    if teachers:
        teacher_serializer = TeacherByAreaListSerializer(teachers, many=True)

        return Response(
            {
                'ok': True,
                'conon_data': teacher_serializer.data
            },
            status=status.HTTP_200_OK
        )
    else:
        return Response(
            {
                'ok': False,
                'detail': 'No se encontró el Área de Conocimiento.'
            },
            status=status.HTTP_400_BAD_REQUEST
        )

Файлы урлов следующие:

Router.py

router = routers.DefaultRouter()

router.register(
    r'school-period',
    SchoolPeriodViewSet,
    basename='school_period'
)
router.register(
    r'knowledge-area',
    KnowledgeAreaViewSet,
    basename='knowledge_area')

urlpatterns = router.urls

Urls.py

path('user/api/', include('applications.users.routers')),
path('school/api/', include('applications.school.routers')),

Далее идет Serializers.py модели:

class KnowledgeAreaSerializer(serializers.HyperlinkedModelSerializer):

teachers = serializers.HyperlinkedRelatedField(
    view_name='knowledge_area-detail',
    read_only=True,
)

Я просто делаю вид, что возвращаю данные (учителя) как url с помощью декоратора действия, упомянутого ранее:

    def to_representation(self, instance):

    data = super().to_representation(instance)

    return {
        'id': instance.id,
        'name': instance.name,
        'coordinator': {
            'id': instance.coordinator.person.id,
            'name': instance.coordinator.person.full_name()
        },
        'sub_coordinator': {
            'id': instance.sub_coordinator.person.id,
            'name': instance.sub_coordinator.person.full_name()
        },
        'objective': instance.objective,
        'observations': instance.observations,
        'teachers': instance.teachers,
        'created_at': instance.created_at
    }

Но проблема в том, что я не смог указать правильный URL метода действия, я сделал много исследований, но не нашел ничего об этом или с такими же требованиями. Кстати, спасибо за помощь.

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