Ce base_name paramètre dois-je besoin dans mon itinéraire pour faire de ce Django API de travail?

Je suis la construction d'une application Django qui expose une API REST permettant aux utilisateurs de requête de mon application de modèles. Je suis en suivant les instructions ici.

Mon Parcours ressemble à ceci dans myApp de l'url.py:

from rest_framework import routers
router = routers.DefaultRouter()    router.register(r'myObjects/(?P<id>\d+)/?$', views.MyObjectsViewSet)
url(r'^api/', include(router.urls)),

Mon Modèle ressemble à ceci:

class MyObject(models.Model):
    name = models.TextField()

Mon Sérialiseur ressemble à ceci:

class MyObjectSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = MyObject
    fields = ('id', 'name',)

Mon Viewset ressemble à ceci:

class MyObjectsViewSet(viewsets.ViewSet):

    def retrieve(self,request,pk=None):
        queryset = MyObjects.objects.get(pk=pk).customMyObjectList()

        if not queryset:
            return Response(status=status.HTTP_400_BAD_REQUEST)
        else:
            serializer = MyObjectSerializer(queryset)
            return Response(serializer.data,status=status.HTTP_200_OK)

Quand j'ai frappé /api/myObjects/60/j'obtiens l'erreur suivante:

base_name argument n'est pas spécifié, et ne pouvait pas déterminer automatiquement le nom de la viewset, car il ne dispose pas d'un .model ou .queryset attribut.

Je comprends de ici que j'ai besoin d'un base_name paramètre sur ma route. Mais à partir de la documentation, il est clair pour moi ce que la valeur de cette base_name paramètre doit être. Quelqu'un peut-il me dire en quoi le parcours devrait ressembler à la base_name?

  • Une question similaire (faite aussi par @Saquib Ali) a été répondu here portant sur le même problème.
InformationsquelleAutor Saqib Ali | 2014-02-27