Agregar más vistas a un enrutador o conjunto de vistas (Django-Rest-Framework)

Esencialmente, estoy tratando de encontrar una buena manera de adjuntar más vistas a un enrutador sin crear un enrutador personalizado.¿Cuál es una buena manera de lograr esto?

Aquí hay algo parecido a lo que estoy tratando de lograr. Se han cambiado los nombres de las variables y el método de ejemplo que quiero introducir está extremadamente simplificado por el bien de esta pregunta.

Enrutador

router = routers.SimpleRouter(trailing_slash=False)
router.register(r'myobjects', MyObjectViewSet, base_name='myobjects')
urlpatterns = router.urls

ViewSet

class MyObjectsViewSet(viewsets.ViewSet):
""" Provides API Methods to manage MyObjects. """

def list(self, request):
    """ Returns a list of MyObjects. """
    data = get_list_of_myobjects()
    return Response(data)

def retrieve(self, request, pk):
    """ Returns a single MyObject. """
    data = fetch_my_object(pk)
    return Response(data)

def destroy(self, request, pk):
    """ Deletes a single MyObject. """
    fetch_my_object_and_delete(pk)
            return Response()

Un ejemplo de otro tipo de método que necesito incluir. (Hay muchos de estos):

def get_locations(self, request):
    """ Returns a list of location objects somehow related to MyObject """
    locations = calculate_something()
    return Response(locations)

El resultado final es que la siguiente URL funcionaría correctamente y se implementaría "limpiamente".

GET example.com/myobjects/123/locations

Respuestas a la pregunta(4)

Su respuesta a la pregunta