python - Django 数据库问题
问题描述
我想从我的数据库中获取信息,但是,我只能获取所有数据。我知道这是我使用objects.all() 的原因。我得到了(患者姓名、身份证、地址代码和所有这些)。我想知道我应该怎么做才能获得数据库中的所有名称,而不是 Json 形式的所有数据。谢谢你。
视图.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)
模型.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
解决方案
也许这可以完成这项工作。
ModelName.objects.values('列名')
推荐阅读
- python - ValueError:字典更新序列元素 #13 的长度为 1;2 是必需的
- javascript - 使用 Google Docs 在我的 GAS 发票生成器中的数组开头未定义
- azure - Microsoft 聊天机器人对问题给出双重答复的问题,而不是我指示它做的 1 次
- javascript - React Hook useEffect 缺少与 useEffect 的依赖关系
- jwt - 修改自定义策略中的JwtIssuer ClaimsProvider,实现AD B2C中的JWE
- python - 通过切片重命名熊猫列,导致合并失败
- haskell - 限制 Sigma 中的类型
- powershell - 从 powershell 中的 get-childitem 命令创建指向文件夹搜索结果的符号链接,并以文件夹名称命名
- javascript - 使用 TypeScript 处理 Formik 提交
- java - java - 如何使用talend检查从ftp站点检索到的文件是否存在于java的本地文件夹中?