gpt4 book ai didi

Django Rest Framework 不会同时显示多个 URL?

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

我有一个包含多个应用程序的项目。每个应用程序都有一个 urls.py。我指出了项目 urls.py 中的每一个。所有 URL 都可以访问,但是它们并不全部显示在 DRF 中。

代码如下:

from django.conf.urls import url, include
from rest_framework import routers

from employees.urls import employees_router
from access.urls import access_router


router = routers.DefaultRouter()

#API ENDPOINTS

urlpatterns = [
url(r'^api/', include(employees_router.urls)),
url(r'^api/', include(access_router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

问题是仅显示列出的第一个 URL - 在本例中为员工。如果我注释掉这一点,则 access_router url 将显示(用户和组)作为单独的链接。为什么rest_framework 的所有URL 不会同时以列表格式显示?

最佳答案

Django 从 url 模式的顶部开始,并在找到匹配项后立即停止。由于您有两个使用相同正则表达式 '^api/' 的网址,因此永远不会使用第二个包含内容。

或者,您不需要为每个应用程序配备一个路由器。您可以使用同一路由器注册多个 View 集:

from access.urls import AccessViewSet
from employees.urls import EmployeesViewSet

router = routers.DefaultRouter()
router.register(r'access', AccessViewSet)
router.register(r'employees', EmployeesViewSet)

然后在您的 URL 模式中包含默认路由器:

urlpatterns = [
url(r'^api/', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

关于Django Rest Framework 不会同时显示多个 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33127230/

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