django rest框架显示模型实例

问题描述 投票:0回答:1

我正试图显示所有的模型实例。

主项目 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'}) 但还是得到同样的错误。

我应该如何显示记录?

python django django-rest-framework httpresponse
1个回答
1
投票

Project.objects.all() 结果是一个空的QuerySet,所以你的循环不会被运行,这使得函数隐式地返回 None.

另外,你需要抛弃循环,让你的返回语句成为。

return Response({'projects': projects})
© www.soinside.com 2019 - 2024. All rights reserved.