from __future__ import unicode_literals
from django.shortcuts import render
+from rest_framework.pagination import PageNumberPagination
+
from .serializer import TestRecordSerializer
from rest_framework.views import APIView
from rest_framework.response import Response
-from rest_framework import status
-
+from rest_framework import mixins
+from rest_framework import generics
+from rest_framework import viewsets
from .models import TestRecord
-# Create your views here.
-class TestRecordListView(APIView):
+
+class StandardResultsSetPagination(PageNumberPagination):
+ page_size = 10
+ page_size_query_param = 'page_size'
+ max_page_size = 100
+
+class TestRecordListViewSet(mixins.ListModelMixin, mixins.CreateModelMixin, viewsets.GenericViewSet):
"""
- List all records, or create a new record.
+ List all records in status page, or create a new record.
"""
- def get(self, request, format=None):
- testRecords = TestRecord.objects.all()
- records_serializer = TestRecordSerializer(testRecords, many=True)
- return Response(records_serializer.data)
+ queryset = TestRecord.objects.all()
+ serializer_class = TestRecordSerializer
+ pagination_class = StandardResultsSetPagination
+ # def get(self, request, *args, **kwargs):
+ # return self.list(request, *args, **kwargs)
- def post(self, request, format=None):
- serializer = TestRecordSerializer(data=request.data)
- if serializer.is_valid():
- serializer.save()
- return Response(serializer.data, status=status.HTTP_201_CREATED)
- return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
\ No newline at end of file
+ def post(self, request, *args, **kwargs):
+ return self.create(request, *args, **kwargs)
+ # def get(self, request, format=None):
+ # testRecords = TestRecord.objects.all()
+ # records_serializer = TestRecordSerializer(testRecords, many=True)
+ # return Response(records_serializer.data)
+ #
+ # def post(self, request, format=None):
+ # serializer = TestRecordSerializer(data=request.data)
+ # if serializer.is_valid():
+ # serializer.save()
+ # return Response(serializer.data, status=status.HTTP_201_CREATED)
+ # return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
'django.contrib.staticfiles',
'django_gravatar',
'rest_framework',
+ 'rest_framework.authtoken',
'users',
'test_records',
'user_operation'
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
-
'rest_framework.permissions.IsAuthenticated',
-
),
'DEFAULT_AUTHENTICATION_CLASSES': (
-
'rest_framework.authentication.TokenAuthentication',
-
+ 'rest_framework.authentication.BasicAuthentication',
+ 'rest_framework.authentication.SessionAuthentication',
),
- 'PAGINATE_BY': 10
-
-}
\ No newline at end of file
+ 'PAGE_SIZE': 20
+}
1. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import include, url
+from rest_framework.authtoken import views
from django.contrib import admin
from django.views.generic.base import RedirectView
from rest_framework.documentation import include_docs_urls
-
-from test_records.views import TestRecordListView
+from rest_framework.routers import DefaultRouter
+from test_records.views import TestRecordListViewSet
# from test_records.view_base import TestListView
+
+# config test record url
+# test_record_list = TestRecordListViewSet.as_view({
+# 'get': 'list',
+# 'post': 'create'
+# })
+router = DefaultRouter()
+router.register(r'status', views.TestRecordListViewSet)
+
urlpatterns = [
# url(r'^admin/', admin.site.urls),
url(r'^api-auth/', include('rest_framework.urls')),
-
- url(r'status/$', TestRecordListView.as_view(), name='test-list'),
+ url(r'^api-token-auth/', views.obtain_auth_token),
+ url(r'^', include(router.urls)),
+ # url(r'status/$', test_record_list, name='test-list'),
# url(r'status/$', TestListView.as_view(), name='test-list'),
url(r'docs/', include_docs_urls(title='pgperffarm')),