add token auth
authorMaleicAcid <CS_MaleicAcid@163\.com>
Sun, 3 Jun 2018 03:57:00 +0000 (11:57 +0800)
committerMaleicAcid <CS_MaleicAcid@163\.com>
Sun, 3 Jun 2018 03:57:00 +0000 (11:57 +0800)
web/apps/test_records/views.py
web/pgperffarm/settings.py
web/pgperffarm/urls.py

index 30e42a877c7e9b0323a6e20b6120b317792bda61..361792a68701c2737bf30fbdde43f08f353e8f3d 100644 (file)
@@ -2,25 +2,41 @@
 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)
index b5f9e14c161d85655bee581f74e53b229180503e..dca27c65355d14bec08441124e639a751bb844e0 100644 (file)
@@ -45,6 +45,7 @@ INSTALLED_APPS = (
     'django.contrib.staticfiles',
     'django_gravatar',
     'rest_framework',
+    'rest_framework.authtoken',
     'users',
     'test_records',
     'user_operation'
@@ -122,17 +123,14 @@ AUTH_USER_MODEL = 'users.UserProfile'
 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
+}
index 3d58daa8af5b3386e5c52519ff2c2427b75a7229..1266d6138f8cf262ee0030fe274182080ef63476 100644 (file)
@@ -13,18 +13,29 @@ Including another URLconf
     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')),