Commit 1f4bcb59 authored by LiniEisha's avatar LiniEisha

API

parent 735cd214
...@@ -5,11 +5,10 @@ from django.db import models ...@@ -5,11 +5,10 @@ from django.db import models
class Lecture(models.Model): class Lecture(models.Model):
lectureid = models.CharField(max_length=50) lectureid = models.CharField(max_length=50)
topic = models.CharField(max_length=100) topic = models.CharField(max_length=100)
date = models.DateTimeField(max_length=50) date = models.CharField(max_length=50)
duration = models.CharField(max_length=100) duration = models.CharField(max_length=100)
lecture = models.CharField(max_length=1000) recording = models.CharField(max_length=10000)
recording = models.CharField(max_length=100) summary = models.CharField(max_length=10000)
summary = models.CharField(max_length=1000)
def __str__(self): def __str__(self):
return self.lectureid return self.lectureid
\ No newline at end of file
from rest_framework import serializers
from .models import Lecture
class LectureSerializer(serializers.Serializer):
lectureid = serializers.CharField(max_length=50)
topic = serializers.CharField(max_length=100)
date = serializers.CharField(max_length=50)
duration = serializers.CharField(max_length=100)
recording = serializers.CharField(max_length=10000)
summary = serializers.CharField(max_length=10000)
def create(self, validated_data):
return Lecture.objects.create(validated_data)
def update(self, instance, validated_data):
instance.lectureid = validated_data.get('lectureid',instance.lectureid)
instance.topic = validated_data.get('topic', instance.topic)
instance.date = validated_data.get('date', instance.date)
instance.duration = validated_data.get('duration', instance.duration)
instance.recording = validated_data.get('recording', instance.recording)
instance.summary = validated_data.get('summary', instance.summary)
instance.save()
return instance
\ No newline at end of file
from django.urls import path
from .views import lecture_list, lecture_details
urlpatterns = [
path('lecture/', lecture_list),
path('details/<int:pk>', lecture_details),
]
from django.shortcuts import render from django.shortcuts import render
from django.http import HttpResponse, JsonResponse
from rest_framework.parsers import JSONParser
from.models import Lecture
from .serializers import LectureSerializer
from django.views.decorators.csrf import csrf_exempt
# Create your views here. # Create your views here.
@csrf_exempt
def lecture_list(request):
if request.method =="GET":
lectures = Lecture.objects.all()
serializers = LectureSerializer(lectures, many=True)
return JsonResponse(serializers.data, safe=False)
elif request.method=="POST":
data = JSONParser().parse(request)
serializer = LectureSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
return JsonResponse(serializer.data , status=200)
@csrf_exempt
def lecture_details(request,pk):
try:
lecture = Lecture.objects.get(pk=pk)
except Lecture.DoesNotExist:
return HttpResponse(status =404)
if request.method=='GET':
serializer = LectureSerializer(lecture)
return JsonResponse(serializer.data, status=200)
elif request.method =='PUT':
data = JSONParser().parse(request)
serializer = LectureSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data)
return JsonResponse(serializer.data , status=200)
elif request.method =='DELETE':
lecture.delete()
return HttpResponse(atatus=204)
...@@ -14,8 +14,9 @@ Including another URLconf ...@@ -14,8 +14,9 @@ Including another URLconf
2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
""" """
from django.contrib import admin from django.contrib import admin
from django.urls import path from django.urls import path, include
urlpatterns = [ urlpatterns = [
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
path('', include('ApiBasic.urls'))
] ]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment