Browse Source

增删查 没改

huan.wang@yueguanjia.com 5 years ago
parent
commit
6fef0bf811
5 changed files with 110 additions and 1 deletions
  1. 15 0
      .idea/zm_admin.iml
  2. 26 0
      courses/serializers.py
  3. 48 0
      courses/views.py
  4. 1 0
      zm_admin/settings.py
  5. 20 1
      zm_admin/urls.py

+ 15 - 0
.idea/zm_admin.iml

@@ -1,10 +1,25 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <module type="PYTHON_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="django" name="Django">
+      <configuration>
+        <option name="rootFolder" value="$MODULE_DIR$" />
+        <option name="settingsModule" value="zm_admin/settings.py" />
+        <option name="manageScript" value="manage.py" />
+        <option name="environment" value="&lt;map/&gt;" />
+        <option name="doNotUseTestRunner" value="false" />
+        <option name="trackFilePattern" value="" />
+      </configuration>
+    </facet>
+  </component>
   <component name="NewModuleRootManager">
     <content url="file://$MODULE_DIR$" />
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
   </component>
+  <component name="TemplatesService">
+    <option name="TEMPLATE_CONFIGURATION" value="Django" />
+  </component>
   <component name="TestRunnerService">
     <option name="PROJECT_TEST_RUNNER" value="Unittests" />
   </component>

+ 26 - 0
courses/serializers.py

@@ -0,0 +1,26 @@
+from rest_framework import serializers
+from courses import models
+
+
+class CoursesSerializer(serializers.ModelSerializer):
+
+    class Meta:
+        model = models.Courses
+        fields = (
+            "id",
+            "code",
+            "type",
+            "phase",
+            "name",
+            "desc",
+            "title_list",
+            "target",
+            "keynote_list",
+            "result",
+            "process_list",
+            "course_ware",
+            "course_video",
+            "attachment_list",
+            "practise",
+            "task"
+        )

+ 48 - 0
courses/views.py

@@ -1,3 +1,51 @@
 from django.shortcuts import render
+from rest_framework import viewsets, status
+from rest_framework.response import Response
+from rest_framework.settings import api_settings
 
+from courses import models
+from courses import serializers
 # Create your views here.
+
+
+class CoursesViewSet(viewsets.ModelViewSet):
+    def list(self, request):
+        coursesList = models.Courses.objects.all()
+        serializer = serializers.CoursesSerializer(coursesList, many=True)
+        return Response(serializer.data)
+
+    def retrieve(self, request, pk=None):
+        try:
+            courses = models.Courses.objects.get(id=pk)
+        except models.Courses.DoesNotExist:
+            return Response(status=status.HTTP_404_NOT_FOUND)
+        serializer = serializers.CoursesSerializer(courses)
+        return Response(serializer.data)
+
+    def destroy(self, request, pk=None):
+        try:
+            courses = models.Courses.objects.get(id=pk)
+        except models.Courses.DoesNotExist:
+            return Response(0)
+        courses.delete()
+        return Response(1)
+
+    def create(self, request):
+        serializer = serializers.CoursesSerializer(data=request.data)
+        serializer.is_valid(raise_exception=True)
+        self.perform_create(serializer)
+        headers = self.get_success_headers(serializer.data)
+        return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
+
+    def perform_create(self, serializer):
+        serializer.save()
+
+    def get_success_headers(self, data):
+        try:
+            return {'Location': str(data[api_settings.URL_FIELD_NAME])}
+        except (TypeError, KeyError):
+            return {}
+
+    def update(self, request, pk=None):
+        print(666)
+        return Response(1)

+ 1 - 0
zm_admin/settings.py

@@ -37,6 +37,7 @@ INSTALLED_APPS = [
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
+    'courses',
     'rest_framework'
 ]
 

+ 20 - 1
zm_admin/urls.py

@@ -13,9 +13,28 @@ Including another URLconf
     1. Import the include() function: from django.urls import include, path
     2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
 """
+from django.conf.urls import url
+from django.urls import path, include, re_path
+from rest_framework.routers import DefaultRouter
+
+
 from django.contrib import admin
 from django.urls import path
 
+from courses import views
+#
+# router = DefaultRouter()
+# router.register(r'courses', views.CoursesViewSet)
+
+
 urlpatterns = [
-    path('admin/', admin.site.urls),
+    url(r'^courses/$', views.CoursesViewSet.as_view({
+        'get': 'list',
+        'post': 'create'
+    })),
+    url(r'^courses/(?P<pk>\d+)/$', views.CoursesViewSet.as_view({
+        'get': 'retrieve',
+        'delete': 'destroy',
+        'post': 'update'
+    })),
 ]