我正在使用Django REST Framework
和Django-OAuth-toolkit
在我的应用程序中启用 OAuth2 身份验证。
自从使用了 OAuth2 之后,我不再需要基于令牌的身份验证,因此也就不需要令牌表/模型。
有时候,在看到两个用于处理令牌的模块之后,我感到困惑。
因此,我想从Django的管理面板中删除/隐藏Token
表。
这是我的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
表
答案 0 :(得分:2)
from rest_framework.authtoken.models import TokenProxy
admin.site.unregister(TokenProxy)
答案 1 :(得分:1)
您必须从rest_framework.authtoken
中删除INSTALLED_APPS
请参见docs
答案 2 :(得分:1)
您不必“不必”删除rest_framework.authtoken
。
此答案可能不适用于您,但是如果您想继续使用身份验证令牌并将其隐藏在Admin中,则可以将以下内容添加到现有的admin.py文件之一:
from rest_framework.authtoken.models import Token
admin.site.unregister(Token)
答案 3 :(得分:1)
转到任何已注册应用的 admin.py
并添加以下行。
from rest_framework.authtoken.models import TokenProxy
admin.site.unregister(TokenProxy)
至少,这按照 2021
使用 Django 3.1.7
工作。
答案 4 :(得分:0)
import { DomSanitizer, SafeResourceUrl, } from '@angular/platform-browser';
mapURL: SafeResourceUrl
constructor( public sanitizer: DomSanitizer) { }
var url = "https://maps.google.com/maps?q="
+ this.tenant.latitude
+ ","
+ this.tenant.longitude
+ "&hl=es;z=14&output=embed";
this.mapURL = this.sanitizer.bypassSecurityTrustResourceUrl(url);
如果你做了上面的一个,你会得到 "raise NotRegistered('模型 %s 未注册' % 模型。名称) django.contrib.admin.sites.NotRegistered: 模型令牌未注册"
所以请按照下面的方法
from rest_framework.authtoken.models import Token
admin.site.unregister(Token)