Reputation: 11
I would like to get information from my database, however, i am only able to get all the data. I understood that it is bcs I used objects.all(). I got (patient name, nric, address code and all of them). I am wondering what should I do in order to get, say, all the names in my database and not all the data in Json form. Thank you.
view.py
from django.http import HttpResponse, JsonResponse
from django.views.decorators.csrf import csrf_exempt
from rest_framework.parsers import JSONParser
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework import status
from .models import PatientDetail
from .serializer import PatientSerializer
# Create your views here.
@api_view(['Get', 'POST'])
# @csrf_exempt
def patient_list(request):
if request.method == 'GET':
patientdetails = PatientDetail.objects.all()
# serialization
serializer = PatientSerializer(patientdetails, many=True)
# return Json
return Response(serializer.data)
elif request.method == 'POST':
#data = JSONParser().parse(request)
serializer = PatientSerializer(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)
@api_view(['Get', 'PUT','DELETE'])
@csrf_exempt
def patient_detail(request,patientNRIC):
try:
patientdetails = PatientDetail.objects.get(patientNRIC = patientNRIC)
except PatientDetail.DoesNotExist:
return HttpResponse(status=404)
if request.method == "GET":
# serialization, getting one data only
serializer = PatientSerializer(patientdetails)
# return Json
return JsonResponse(serializer.data)
elif request.method == "PUT":
data = JSONParser().parse(request)
serializer = PatientSerializer(patientdetails, data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data)
return JsonResponse(serializer.errors, status=400)
elif request.method == 'DELETE':
patientdetails.delete()
return HttpResponse(status=204)
model.py
from django.db import models
from django.db import models
class PatientDetail(models.Model):
patientName = models.CharField(max_length=100)
patientNRIC = models.CharField(max_length=100, primary_key=True)
patientAddress = models.CharField(max_length=100)
patientAllergies = models.CharField(max_length=100)
patientMedicationName = models.CharField(max_length=100)
dosage = models.CharField(max_length=100)
sideEffects = models.CharField(max_length=100)
date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.patientName
Upvotes: 0
Views: 67