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

Django REST Framework报FieldError:无法解析‘data’为字段求助

问题排查与解决

错误原因

出现FieldError: Cannot resolve keyword ‘data’ into the field. Choices are: id, nome的核心原因有两个:

  1. 字段不存在:你的Teste模型仅包含id和nome两个字段,data并非模型定义的字段,因此Teste.objects.get(data=request.data)这句代码会触发ORM字段查找失败的异常。
  2. 逻辑错误:这是一个用于创建数据的POST接口,但你错误地使用get方法去查询数据库,完全违背了创建新实例的业务逻辑。

修正后的代码

修正后的view代码

from .models import Teste
from .serializer import TesteSerializer
from rest_framework.decorators import api_view
from rest_framework.response import Response

@api_view(['POST'])
def create_teste(request):
    # 直接将请求数据传入序列化器,DRF会自动完成数据解析
    serializer = TesteSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data)
    else:
        return Response(serializer.errors)

关键修正点

  • 删除了错误的Teste.objects.get(data=request.data)查询语句,创建数据无需预先查询数据库。
  • 将request.data作为data参数传入序列化器,这是DRF中创建模型实例的标准写法。
  • 移除了手动调用JSONParser的代码,api_view装饰器已经自动处理了请求数据的解析工作。

内容的提问来源于stack exchange,提问作者Castro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:01:26