gpt4 book ai didi

python - 如何在 Django View 集中获取 API 参数?

转载 作者:太空狗 更新时间:2023-10-29 17:31:35 26 4
gpt4 key购买 nike

我正在构建一个公开 REST API 的 Django 应用程序,用户可以通过该 API 查询我的应用程序的模型。我正在按照说明 here

我的路线在 mySites url.py 中看起来像这样:

router.register(r'myObjects', views.MyObjectsViewSet)
....
url(r'^api/', include(router.urls)),

我的序列化器看起来像这样:

class MyObjectSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = MyObject
fields = ('id', 'name',)

我的 View 集是这样的:

class MyObjectsViewSet(viewsets.ModelViewSet):
queryset = MyObjects.objects.all()
serializer_class = MyObjectSerializer

当我点击 API/api/myObjects/时,它会为我提供所有 myObject 模型的列表。当我点击 API/api/myObjects/60/时,它只给我 id == 60 的 myObject。到目前为止很棒!

但是,我想更改 MyObjectsViewSet() 的逻辑,以便在我点击/api/myObjects/60/时可以操纵/更改它返回的内容。因此,我不想做 MyObjects.objects.all(),而是想根据 myObject ID 60 做一些更复杂的事情。但是我该怎么做呢?在此 View 集中,我如何获取数字 60?它不作为参数传入。但我真的需要它!

最佳答案

在您的路由器中,再注册一个网址:

router.register(r'myObjects/(?P<id>\d+)', views.MyObjectsViewSet)

在您的 View 集中,您可以通过以下方式获取 id:

self.kwargs['id']

引用:http://www.django-rest-framework.org/api-guide/filtering#filtering-against-the-url

关于python - 如何在 Django View 集中获取 API 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22034023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com