Скрыть таблицу токенов из админ-панели в Django REST Framework
Я использую 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
}
Я удалил аутентификацию на основе токена, но все еще Token
таблица есть в админке
6 ответов
Вы должны удалить rest_framework.authtoken
от INSTALLED_APPS
Посмотреть документы
Вам не "нужно" удалять rest_framework.authtoken
.
Этот ответ, вероятно, не относится к вам, но если вы хотите продолжать использовать токены аутентификации и просто скрыть их от администратора, вы можете добавить следующее в один из ваших существующих файлов admin.py:
from rest_framework.authtoken.models import Token
admin.site.unregister(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.models import Token
admin.site.unregister(Token)
если вы сделаете вышеуказанное, вы получите «поднять NotRegistered ('Модель% s не зарегистрирована'% model. name )django.contrib.admin.sites.NotRegistered: Model Token не зарегистрирован»
Поэтому, пожалуйста, следуйте приведенному ниже подходу
from rest_framework.authtoken.models import TokenProxy
admin.site.unregister(TokenProxy)
Это должно нормально работать
from rest_framework.authtoken.admin import (
TokenProxy
)
admin.site.unregister(TokenProxy)