File tree Expand file tree Collapse file tree 5 files changed +19
-4
lines changed
django_rest_framework_queryset Expand file tree Collapse file tree 5 files changed +19
-4
lines changed Original file line number Diff line number Diff line change 11from rest_framework import generics
22from rest_framework import serializers
3+ from rest_framework import viewsets
34from .models import DataModel
45from .filters import DataModelFilter
56
@@ -10,7 +11,7 @@ class Meta(object):
1011 fields = '__all__'
1112
1213
13- class ListView (generics . ListAPIView ):
14+ class ListView (viewsets . ModelViewSet ):
1415 serializer_class = DataModelSerializer
1516 queryset = DataModel .objects .all ()
1617 filter_class = DataModelFilter
Original file line number Diff line number Diff line change 4141 'rest_framework' ,
4242 'api' ,
4343 'web' ,
44+ 'django_filters' ,
4445]
4546
4647MIDDLEWARE_CLASSES = [
Original file line number Diff line number Diff line change 1616"""
1717from django .conf .urls import url
1818from django .contrib import admin
19+ from rest_framework import routers
1920from api .views import ListView
2021from web .views import ListDataView
2122
23+ router = routers .SimpleRouter ()
24+ router .register (r'api' , ListView )
25+
2226urlpatterns = [
2327 url (r'^admin/' , admin .site .urls ),
24- url (r'^api/' , ListView .as_view ()),
28+ # url(r'^api/', ListView.as_view()),
2529 url (r'^list/$' , ListDataView .as_view ()),
2630 url (r'^list/page/(?P<page>\d+)/$' , ListDataView .as_view ()),
27- ]
31+ ] + router . urls
Original file line number Diff line number Diff line change @@ -76,7 +76,7 @@ def _clone(self):
7676
7777 def _call_api (self ):
7878 if self .__id :
79- self .url = '{}/{}' .format (self .url .rstrip ('/' ), self .__id )
79+ self .url = '{}/{}/ ' .format (self .url .rstrip ('/' ), self .__id )
8080 return super (RestFrameworkQuerySet , self )._call_api ()
8181
8282 def count (self ):
@@ -90,6 +90,7 @@ def count(self):
9090
9191 def get_result (self ):
9292 response = self ._call_api ()
93+ print (response .text )
9394 result = response .json ()
9495 if 'results' in result :
9596 return result ['results' ]
Original file line number Diff line number Diff line change @@ -100,3 +100,11 @@ def test_slice(self):
100100 qs = RestFrameworkQuerySet ('{}/api/' .format (self .live_server_url ))
101101 item_list = [item ['value' ] for item in qs [200 :1000 ]]
102102 self .assertEqual (item_list , list (range (200 , 1000 )))
103+
104+ def test_get (self ):
105+ DataModel .objects .bulk_create ([DataModel (value = i ) for i in range (100 )])
106+ qs = RestFrameworkQuerySet ('{}/api/' .format (self .live_server_url ))
107+ item = qs .get (1 )
108+ self .assertEqual (item ['id' ], 1 )
109+ item = qs .get (2 )
110+ self .assertEqual (item ['id' ], 2 )
You can’t perform that action at this time.
0 commit comments