在 Django REST Framework 的管理面板中隐藏令牌 table
Hide the token table from the admin panel in Django REST Framework
我正在使用 Django REST Framework
和 Django-OAuth-toolkit
在我的应用程序中启用 OAuth2 身份验证。
自从使用 OAuth2 后,我不再需要 token-based 身份验证,因此没有令牌 table/model.
有时看到两个不同的处理令牌的模块让我感到困惑。
因此,我想从 Django 的管理面板 remove/hide Token
table。
这是我的 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
}
我已经删除了基于令牌的身份验证,但 Token
table 仍然存在于管理面板中
您必须从 INSTALLED_APPS
中删除 rest_framework.authtoken
见docs
您没有"have to"删除rest_framework.authtoken
。
此答案可能不适用于您,但如果您想继续使用 authtokens 并只是让它们对管理员隐藏,您可以将以下内容添加到您现有的 admin.py 文件之一:
from rest_framework.authtoken.models import Token
admin.site.unregister(Token)
from rest_framework.authtoken.models import TokenProxy
admin.site.unregister(TokenProxy)
from rest_framework.authtoken.models import Token
admin.site.unregister(Token)
如果你做上面的一个你会得到
“提高 NotRegistered('The model %s is not registered' % model.name)
django.contrib.admin.sites.NotRegistered:模型Token未注册
所以请按照下面的方法进行
from rest_framework.authtoken.models import TokenProxy
admin.site.unregister(TokenProxy)
进入任何已注册应用的 admin.py
并添加以下行。
from rest_framework.authtoken.models import TokenProxy
admin.site.unregister(TokenProxy)
至少,这按照 2021
使用 Django 3.1.7
。
这应该正常工作
from rest_framework.authtoken.admin import (
TokenProxy
)
admin.site.unregister(TokenProxy)
我正在使用 Django REST Framework
和 Django-OAuth-toolkit
在我的应用程序中启用 OAuth2 身份验证。
自从使用 OAuth2 后,我不再需要 token-based 身份验证,因此没有令牌 table/model.
有时看到两个不同的处理令牌的模块让我感到困惑。
因此,我想从 Django 的管理面板 remove/hide Token
table。
这是我的 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
}
我已经删除了基于令牌的身份验证,但 Token
table 仍然存在于管理面板中
您必须从 INSTALLED_APPS
rest_framework.authtoken
见docs
您没有"have to"删除rest_framework.authtoken
。
此答案可能不适用于您,但如果您想继续使用 authtokens 并只是让它们对管理员隐藏,您可以将以下内容添加到您现有的 admin.py 文件之一:
from rest_framework.authtoken.models import Token
admin.site.unregister(Token)
from rest_framework.authtoken.models import TokenProxy
admin.site.unregister(TokenProxy)
from rest_framework.authtoken.models import Token
admin.site.unregister(Token)
如果你做上面的一个你会得到 “提高 NotRegistered('The model %s is not registered' % model.name) django.contrib.admin.sites.NotRegistered:模型Token未注册
所以请按照下面的方法进行
from rest_framework.authtoken.models import TokenProxy
admin.site.unregister(TokenProxy)
进入任何已注册应用的 admin.py
并添加以下行。
from rest_framework.authtoken.models import TokenProxy
admin.site.unregister(TokenProxy)
至少,这按照 2021
使用 Django 3.1.7
。
这应该正常工作
from rest_framework.authtoken.admin import (
TokenProxy
)
admin.site.unregister(TokenProxy)