我尝试使用python和Django创建一个db,并使用一个“DELETE”方法,该方法不执行,并在postman中返回错误500

2024-05-07 03:35:08 发布

您现在位置:Python中文网/ 问答频道 /正文

刚刚接触python编程,Django SQL,并尝试创建一个DB,用Postman和SQLLiteStudio验证它! 使用Django创建DB和python(3.9.6)。当我运行DELETE方法时,在postman中返回错误500,而不执行DELETE。 {在我的命令中,我没有看到任何错误消息}

error msg in Postman trying to execute DELETE

观点:

from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt
from rest_framework.parsers import JSONParser
from django.http.response import JsonResponse 

from EmployeeApp.models import Departments,Employees
from EmployeeApp.serializers import DepartmentSerializer,EmployeeSerializer 

# Create your views here.
@csrf_exempt
def departmentApi(request,id=0):
    if request.method=='GET':
        departments = Departments.objects.all()
        departments_serializer = DepartmentSerializer(departments, many=True)
        return JsonResponse(departments_serializer.data, safe=False)

    elif request.method=='POST':
        department_data=JSONParser().parse(request)
        department_serializer = DepartmentSerializer(data=department_data)
        if department_serializer.is_valid():
            department_serializer.save()
            return JsonResponse("Added Successfully!!" , safe=False)
        return JsonResponse("Failed to Add.",safe=False)
    
    elif request.method=='PUT':
        department_data = JSONParser().parse(request)
        department=Departments.objects.get(DepartmentId=department_data['DepartmentId'])
        department_serializer=DepartmentSerializer(department,data=department_data)
        if department_serializer.is_valid():
            department_serializer.save()
            return JsonResponse("Updated Successfully!!", safe=False)
        return JsonResponse("Failed to Update.", safe=False)

    elif request.method=='DELETE':
        department=Departments.objects.get(DepartmentId=id)
        department.delete()
        return JsonResponse("Deleted Succeffully!!", safe=False)    

型号:

from Django.DB import models

class Departments(models.Model):
    DepartmentId = models.AutoField(primary_key=True)
    DepartmentName = models.CharField(max_length=100)

class Employees(models.Model):
    EmployeeId = models.AutoField(primary_key=True)
    EmployeeName = models.CharField(max_length=100)
    Department = models.CharField(max_length=100)
    DateOfJoining = models.DateField()
    PhotoFileName = models.CharField(max_length=100)

序列化程序:

from rest_framework import serializers
from EmployeeApp.models import Departments, Employees

class DepartmentSerializer(serializers.ModelSerializer):
      class Meta:
            model=Departments
            fields=('DepartmentId','DepartmentName')


class EmployeeSerializer(serializers.ModelSerializer):
      class Meta:
            model=Employees
            fields=('EmployeeId',
            'EmployeeName',
            'Department',
            'DateOfJoining',
            'PhotofileName') ```