Django Rest Framework一次不会显示多个URL?

时间:2015-10-14 13:51:53

标签: django rest django-rest-framework

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

以下是代码:

public void applyThemeToDrawable(Drawable image) {
    if (image != null) {
        PorterDuffColorFilter porterDuffColorFilter = new PorterDuffColorFilter(Color.BLUE,
                PorterDuff.Mode.SRC_ATOP);

        image.setColorFilter(porterDuffColorFilter);
    }
}

问题是只显示列出的第一个网址 - 在这种情况下是员工。如果我对其中的一个进行评论,则access_router URL会将(用户和组)显示为单独的链接。为什么rest_framework的所有URL都不能同时显示 - 以列表格式显示?

1 个答案:

答案 0 :(得分:4)

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

或者,您不需要为每个应用程序使用路由器。您可以使用相同的路由器注册多个视图集:

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

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

然后在您的网址格式中包含默认路由器:

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