Django REST Framework Ba​​sicAuthentication 未应用为默认身份验证 class

Django REST Framework BasicAuthentication is not applied as default authentication class

我有一个 Django REST Framework 项目,我添加了

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.BasicAuthentication',
    ]
}

settings.py,我希望 BasicAuthentication 默认应用于所有页面,但它仍然不需要任何身份验证来显示内容。那很奇怪。我必须做我没有做的事情吗?
urls.py:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('student/', include('blogapp.urls')),
    path('api/', include('api.urls')),
    path('api-auth/', include('rest_framework.urls')),
]

setting.py:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'blogapp',
]

blog_app/urls:

urlpatterns = [
    path('', StudentView.as_view()),
]

views.py:

class StudentView(generics.ListCreateAPIView):
    queryset = Student.objects.all()
    serializer_class = StudentSerializer

更新 1:

而且每次观看验证都不起作用!

更新 2:

This是我的项目源码。

身份验证与权限不同。如果您需要对所有用户进行身份验证(使用您希望使用的身份验证方法之一),您还需要添加默认权限 class:

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.BasicAuthentication',
    ],
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAuthenticated',
    ],
}

此外,请确保您正在测试正确的视图 (/api/list/)。您的项目(如您链接的那样)有两个 StudentView,其中一个是 DRF 视图,另一个 (/student/) 不是。后者不会知道 DRF 配置。