Django接口报错:NameError及Employees.DoesNotExist问题求助
Django接口/api/1路径的两类错误解决方案
1. NameError: 'Employee'未定义
问题原因
代码中使用的Employee类未被正确导入,或模型类名拼写错误——从报错栈可见实际模型类为Employees,而代码里写成了Employee。
修复步骤
- 在
api/views.py顶部导入正确的模型:from api.models import Employees - 将代码中的
Employee.objects.get(...)修正为Employees.objects.get(...)
2. Internal Server Error: Employees.DoesNotExist异常
问题原因
objects.get(pk=pk)方法要求必须返回唯一匹配的对象,当数据库中不存在pk=1的Employees记录时,会直接抛出DoesNotExist异常,未处理的异常会触发500内部服务器错误。
修复方案
方案1:确认数据存在
检查数据库,确保存在pk=1的Employees条目,或调整请求的pk值为数据库中已存在的记录ID。
方案2:代码层面捕获异常(推荐)
在视图中捕获异常,返回友好的404响应,避免服务器错误:
from django.http import Http404 from api.models import Employees def employeeDetailview(request,pk): try: employee = Employees.objects.get(pk=pk) print(employee) return JsonResponse(f'Employee {pk}', safe=False) except Employees.DoesNotExist: # 方式一:抛出Django内置的404异常,使用默认404页面 raise Http404("指定的员工不存在") # 方式二:返回自定义JSON错误响应 # return JsonResponse({'error': '指定的员工不存在'}, status=404)
内容的提问来源于stack exchange,提问作者aditya dubey
相关产品推荐
相关产品推荐

