2014-11-14 22 views
6

Đây là mã của tôi:django khuôn khổ còn lại - không thể có được dựa class view đúng

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), 
         ) 

Nhưng khi tôi goto url cơ sở thì bí quyết

init() nhận 1 tham số vị trí nhưng 2 được trao

và khi tôi goto '/ danh sách /' url, nó cho tôi 404 Page Not Found, nhưng tôi có vài danh sách trong db.

Tôi khá mới trong django. Tôi không thể tìm ra điều gì sai trái với họ. Tôi đang sử dụng Django 1.7.1 trong virtualwrappr, python 3.4.

Trả lời

7

Bạn nên gọi .as_view() cho mỗi view API:

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

Ngoài ra, hãy xem xét sử dụng REST khuôn khổ của Routerscung cấp cho bạn một cách đơn giản, nhanh chóng và nhất quán của hệ thống dây điện logic xem của bạn vào một tập hợp các URL .

+8

Nhưng khi tôi thử với bộ định tuyến, nó cho tôi 'as_view() nhận 1 đối số vị trí nhưng 2 đã được đưa ra lỗi. –

4

Điều này xảy ra với tôi khi tôi mở rộng generics.GenericAPIView thay cho viewsets.GenericViewSet trong lớp tùy chỉnh ViewSet của tôi.

Khá rõ ràng nhưng dễ bỏ lỡ.

Các vấn đề liên quan