viewsets viewset update route queryset framework detail create python django rest django-rest-framework

python - viewset - Agregar una APIView a Django REST Framework API navegable



partial update django rest framework (2)

Creo que la línea que incluye el router.urls está "adelantando" a otras urls que comienzan con api . Intenta cambiar,

url(r''^api/'', include(router.urls)),

a

url(r''^tokenapi/'', include(router.urls)),

Si eso funciona, intente mover la línea con incluir para ser la última línea en la lista de patrones de url y cambiar tokenapi de nuevo a api .

urlpatterns = patterns('''', url(r''^admin/'', include(admin.site.urls)), url(r''^api/register$'', RegisterUser.as_view(), name=''register_user''), url(r''^api/auth$'', ObtainAuthToken.as_view(), name=''obtain_token''), url(r''^api/me$'', ObtainProfile.as_view(), name=''obtain_profile''), url(r''^api/recover$'', FindUsername.as_view(), name=''recover_username''), url(r''^api/'', include(router.urls)), )

Esta pregunta ya tiene una respuesta aquí:

He estado desarrollando un backend REST con el marco REST de Django.
Sin embargo, estoy teniendo problemas para agregar una instancia de APIView a la API de navegación web.

La documentation y la respuesta anterior sugieren que todo lo que tengo que hacer es agregar una cadena de documentos.
No funciono para mí.

Supongo que la API navegable solo muestra los puntos de vista del conjunto de vistas que están registrados con el enrutador.
Si esto es así, ¿cómo puedo registrar las clases APIView en el enrutador?

A continuación se muestra mi código de enrutador actual:

router = DefaultRouter(trailing_slash=False) router.register(r''tokens'', TokenViewSet, base_name=''token'') urlpatterns = patterns('''', url(r''^admin/'', include(admin.site.urls)), url(r''^api/'', include(router.urls)), url(r''^api/register$'', RegisterUser.as_view(), name=''register_user''), url(r''^api/auth$'', ObtainAuthToken.as_view(), name=''obtain_token''), url(r''^api/me$'', ObtainProfile.as_view(), name=''obtain_profile''), url(r''^api/recover$'', FindUsername.as_view(), name=''recover_username''), )

Actualmente, solo se muestra el punto final del token.

Gracias.