在 Django REST Framework 的管理面板中隐藏令牌表

Anu*_*TBE 4 django django-rest-framework django-oauth

我正在使用Django REST Framework和在我的应用程序中Django-OAuth-toolkit启用OAuth2身份验证。

由于使用OAuth2 后,我不再需要基于令牌的身份验证,因此不需要令牌表/模型。

有时在看到两个不同的处理令牌的模块后,我感到很困惑。

因此,我想Token从 Django 的管理面板中删除/隐藏表。

这是我的settings.py文件

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'oauth2_provider.contrib.rest_framework.OAuth2Authentication'
    ),
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAuthenticated'
    ],
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE': 10
}
Run Code Online (Sandbox Code Playgroud)

我已经删除了基于令牌的身份验证,但Token管理面板中仍然有表格

在此处输入图片说明

Oli*_*Oli 13

您不必“必须”删除rest_framework.authtoken.

这个答案可能不适用于您,但如果您想继续使用 authtokens 并让它们对管理员隐藏,您可以将以下内容添加到您现有的 admin.py 文件之一:

from rest_framework.authtoken.models import Token
admin.site.unregister(Token)
Run Code Online (Sandbox Code Playgroud)

  • 我尝试了这个解决方案,但即使“django.contrib.auth”在“INSTALLED_APPS”中首先列出,它也会抛出“NotRegistered”错误 (2认同)
  • 您应该取消注册 TokenProxy `admin.site.unregister(TokenProxy)` (2认同)

Ahm*_*adi 7

from rest_framework.authtoken.models import TokenProxy
admin.site.unregister(TokenProxy)
Run Code Online (Sandbox Code Playgroud)