Django REST Framework JSON数据无法显示的问题排查求助
Django REST Framework 无数据显示问题排查
首要问题:QuerySet 模型不匹配
你的 ExampleAPI 视图中,queryset 错误引用了 Dictionary.objects.all(),但序列化器绑定的是 Example 模型,这会导致视图查询的是完全无关的模型数据,自然无法返回 Example 的内容。
修正后的视图代码:
class ExampleAPI(viewsets.ModelViewSet): queryset= Example.objects.all() # 替换为正确的Example模型QuerySet serializer_class = ExampleSerializer def get_paginated_response(self, data): return Response(data)
额外排查方向
如果修正后仍无数据,可检查以下内容:
- URL 路径重复问题:当前配置下,实际访问的有效路径是
http://你的域名/ExampleAPI/ExampleAPI/(注册路由时的前缀+path里的前缀),容易导致访问错误。建议简化URL配置:
之后直接访问routExample= routers.SimpleRouter() routExample.register(r'', views.ExampleAPI) # 移除注册时的前缀 urlpatterns = [ path("ExampleAPI/", include(routExample.urls)), ]http://你的域名/ExampleAPI/即可获取数据。 - 权限/认证限制:若项目全局配置了权限或认证类,可能会拦截数据返回。可临时在视图中关闭测试:
class ExampleAPI(viewsets.ModelViewSet): queryset= Example.objects.all() serializer_class = ExampleSerializer permission_classes = [] authentication_classes = [] def get_paginated_response(self, data): return Response(data) - 序列化器字段问题:虽然你用了
fields='__all__',但可显式指定字段确认是否生效:class ExampleSerializer(ModelSerializer): class Meta: model= Example fields=['id', 'Text'] # 显式列出字段
内容的提问来源于stack exchange,提问作者Kring Lord
相关产品推荐
相关产品推荐

