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

Django REST框架GET请求返回空括号问题排查求助

问题分析与解决

核心问题:Serializer继承错误

你定义的DishDoerSerializer继承了serializers.Serializer,但同时使用了Meta类指定模型和字段——Serializer基类不支持Meta配置,这会导致序列化器无法识别模型的字段,最终返回空对象列表。

正确做法是继承serializers.ModelSerializer,它是专门为Django模型设计的序列化器,支持Meta类配置:

# serializer
class DishDoerSerializer(serializers.ModelSerializer):  # 替换为ModelSerializer
    class Meta:
        model = DishDoer 
        fields = "__all__"

次要优化:变量作用域隐患

视图中washer变量定义在if request.method == "GET"代码块内,虽然当前视图只处理GET请求,但后续扩展时可能出现变量未定义的报错。可以调整为:

# view
@api_view(['GET'])
def getTheWashers(request):
    washer = DishDoer.objects.all()  # 直接定义在代码块外,适配当前仅GET的逻辑
    washer_serializer = DishDoerSerializer(washer, many=True)
    return Response(washer_serializer.data)

修复验证

修改Serializer的继承类后,序列化器会自动映射DishDoer模型的所有字段,再次请求/api/washers即可返回包含完整数据的记录列表,而非空大括号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 00:12:01