DRF:如何用密码保护 DefaultRouter

bdo*_*leu 5 python django django-rest-framework

您将如何进行保护,DefaultRouter()以便用户在登录之前无法查看 API Root?

class OrderViewSet(viewsets.ReadOnlyModelViewSet):
    permission_classes = (permissions.IsAuthenticated)
    queryset = Order.objects.all()
    serializer_class = OrderSerializer

router = routers.DefaultRouter()
router.register(r'orders', views.OrderViewSet)

urlpatterns = [
    url(r'^', include(router.urls)),
    url(r'^auth/', include('rest_framework.urls')),
]  
Run Code Online (Sandbox Code Playgroud)

项目.urls.py

# API
url(r'^api/', include(api_urls)),
Run Code Online (Sandbox Code Playgroud)

Har*_*rsh 4

您可以在 settings.py 文件中添加默认权限类:

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    )
}
Run Code Online (Sandbox Code Playgroud)