2014-11-14 10 views
6

Ecco i miei codici:django quadro resto - non è possibile ottenere la visualizzazione basata classe giusta

serializers.py

class UserSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = User 
     fields = ('username', 'email') 


class AllListingSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = Listing 
     fields = ('name', 'desc', 'thumbnail', 'office_no', 'mobile_no', 'email', 'web ') 

views.py

class UserViewSet(generics.ListCreateAPIView): 
    queryset = User.objects.all() 
    serializer_class = UserSerializer 

class AllListing(generics.ListCreateAPIView): 
    queryset = Listing.objects.all() 
    serializer_class = AllListingSerializer 

urls.py

urlpatterns = patterns('', 
         url(r'^$', apiview.UserViewSet), 
         url(r'^listings/$', apiview.AllListing), 
         ) 

Ma quando goto l'URL di base è s how

init() batte 1 argomento posizionale ma 2 sono stati dati

e quando ho goto '/ annunci /' url, mi darà 404 Pagina non trovata, ma ho pochi annunci nel db.

Sono piuttosto nuovo in django. Non riesco a capire cosa non va in loro. Sto usando Django 1.7.1 in virtualwrappr, python 3.4.

risposta

7

Si dovrebbe chiamare .as_view() per ogni visualizzazione API:

urlpatterns = patterns('', 
         url(r'^$', apiview.UserViewSet.as_view()), 
         url(r'^listings/$', apiview.AllListing.as_view()), 
        ) 

Inoltre, considerare l'utilizzo di framework di REST Routers che vi fornirà un modo semplice, rapido e coerente di cablaggio tua logica in vista di una serie di URL .

+8

Ma quando provo con i router, mi dà "as_view() accetta 1 argomento posizionale ma 2 è stato dato" errore. –

4

Questo è successo a me quando ho esteso generics.GenericAPIView anziché viewsets.GenericViewSet nella mia classe personalizzata ViewSet.

Abbastanza ovvio ma facile da perdere.

Problemi correlati