我有一个包含多个应用的项目。每个应用都有一个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都不能同时显示 - 以列表格式显示?
答案 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'))
]