当前位置:  开发笔记 > 编程语言 > 正文

返回Get中的id列表.Django Rest Framework

如何解决《返回Get中的id列表.DjangoRestFramework》经验,为你挑选了1个好方法。

我有一个名为"document-detail-sample"的模型,当你用GET调用它时,就像这样,GET https://url/document-detail-sample/然后你得到每个"document-detail-sample".

模型内部是id.所以,如果你想要每个Id,你可以在列表上"迭代"并询问id.简单.

但是......前端开发人员不想这样做:D他们说这是太多的工作......

所以,我必须返回id列表.:d

我在想GET之类的东西 https://url/document-detail-sample/id-list

但我不知道如何只返回一个列表.我读了这篇文章,我知道如何在后端获取id_list.但我不知道我应该实现什么才能返回该网址中的列表...

我认为这很简单:

class DocumentDetailSampleViewSet(viewsets.ModelViewSet):
    queryset = DocumentDetailSample.objects.all()
    serializer_class = DocumentDetailSampleSerializer

而网址是这样的:

router.register(r'document-detail-sample', DocumentDetailSampleViewSet)

所以:

1 - 是一个好主意用网址做的.../document-detail-sample/id-list"吗?

2 - 如果是,我该怎么办?

3 - 如果没有,那我该怎么办?



1> Ivan Semochk..:

你可以使用@list_route装饰

from rest_framework.decorators import detail_route, list_route
from rest_framework.response import Response

class DocumentDetailSampleViewSet(viewsets.ModelViewSet):
    queryset = DocumentDetailSample.objects.all()
    serializer_class = DocumentDetailSampleSerializer

    @list_route()
    def id_list(self, request):
        q = self.get_queryset().values('id')
        return Response(list(q))

此装饰器允许您提供与方法同名的其他端点. /document-detail-sample/id_list/
引用有关视图集中额外操作的文档

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有