You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 18:25:18