gpt4 book ai didi

python - 如何在 django Rest API 中向路由器提供参数?

转载 作者:行者123 更新时间:2023-12-01 06:25:47 25 4
gpt4 key购买 nike

所以我想要实现的网址如下所示:

127.0.01:8000/api/tech/?belongs=id

我的路由器如下所示:

router = routers.DefaultRouter()
router.register('tech', TechViewSet, basename="tech")

urlpatterns = [
path('', include(router.urls)),
re_path(r'^tech/(?P<belongs>)$', include(router.urls), name="info"),

我的 View 集如下所示(还有检索和列表功能):

@action(detail=True, url_path='^tech/(?P<belongs>)$', methods=['get'])
def retrieve1(self, request, group=None):
pass

并且路由器显然包含在主项目的 urls.py 中

如何使此网址正常工作..127.0.01:8000/api/tech/?belongs=id

请帮忙。抱歉,我还在学习,路由部分很困惑..

非常感谢

最佳答案

如果不知道你的模型结构,这有点棘手。但如果您使用的是 get过滤参数可以使用django_filters为您做繁重的工作。像这样的事情:

pip install django-filter

将其添加到您的其余框架设置中: 'DEFAULT_FILTER_BACKENDS':['django_filters.rest_framework.DjangoFilterBackend']

然后在你的TechViewSet中您可以添加filterset_fields :

class TechViewSet:
<your other variables>
filterset_fields = ['belongs',]

然后您可以添加查询参数?belongs=<some_id>添加到您的网址,您的结果将被过滤。

文档: https://www.django-rest-framework.org/api-guide/filtering/#djangofilterbackend

关于python - 如何在 django Rest API 中向路由器提供参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60148103/

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