django rest framework 显示模型实例

django rest framework display model instances

我正在尝试显示所有模型实例。

主要项目urls.py

from .views import api_root, endpoint_info, test

urlpatterns = [
    path('admin/', admin.site.urls),
    path('test', test)
]

主要项目views.py

from project.models import Project
from rest_framework.decorators import api_view, renderer_classes
from rest_framework.renderers import JSONRenderer

@api_view(['GET'])
@renderer_classes((JSONRenderer,))
def test(request):
    projects = Project.objects.all()
    for project in projects:
        return Response({'client_name': project.client_name})
        # return Response({'client_name': 'string_value_random'}) <-- tried returning string too

我收到这个错误:

AssertionError at /test
Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>`

我也试过返回 return Response({'client_name': 'string_value_random'}) 但仍然得到同样的错误。

如何显示记录?

Project.objects.all() 导致一个空的 QuerySet,所以你的循环不会得到 运行,这使得函数隐式 return None.

此外,您需要放弃循环并使您的 return 语句成为:

return Response({'projects': projects})