python - RuntimeError:模型类未声明显式 app_label 并且不在 INSTALLED_APPS for Django OAuth Toolkit 中的应用程序中
问题描述
我想访问 Django OAUTH Toolkit 使用的模型,以便定期从数据库中删除旧令牌。我以为我只是导入它们:
from oauth2_provider.management.commands.cleartokens import Command
from oauth2_provider.models import AccessToken
Command.handle()
但是,当我尝试在命令行中运行此文件时,我收到以下错误:
Traceback (most recent call last):
File ".\db_cleanup.py", line 5, in <module>
from oauth2_provider.models import AccessToken
File "C:\Users\User\.virtualenvs\gsm-django\lib\site-packages\oauth2_provider\models.py", line 178, in <module>
class Application(AbstractApplication):
File "C:\Users\User\.virtualenvs\gsm-django\lib\site-packages\django\db\models\base.py", line 95, in __new__
"INSTALLED_APPS." % (module, name)
RuntimeError: Model class oauth2_provider.models.Application doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
我也尝试oauth2_provider.models.Application
在设置文件中添加已安装的应用程序,但无济于事:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'api',
'oauth2_provider',
'oauth2_provider.models.Application',
'rest_framework',
'rest_framework.authtoken',
'graphene_django',
'corsheaders',
]
我也添加app_label
到Application
它提到的类中,但这也不起作用。
解决方案
如果您查看django-oauth2-provider 文档(我认为这是正确的库;我不得不猜测,因为我没有在您的问题中找到链接),它在那里说:
将 OAuth2 提供程序添加到 INSTALLED_APPS
INSTALLED_APPS = ( # ... 'provider', 'provider.oauth2', )
但我注意到您在问题中的代码还有其他内容:
'oauth2_provider',
'oauth2_provider.models.Application',
您是否尝试过文档的建议?那对你有用吗?
推荐阅读
- javascript - 在 jQuery 中附加外部 PHP 文件
- jwt - 基于 JWT 声明的 Istio Origin 授权
- selenium - 一次创建 Selenium Webdriver 并在 Cucumber 的所有步骤中使用
- python - 内连接只是逐行执行合并?
- java - 在 extJS 中捕获 div 元素的屏幕截图
- html - HTML5 嵌入元素类型
- doxygen - C中缺少一些调用图
- php - docker-php-ext-install - 尽管安装了扩展,但仍然找不到源
- spring-boot - Spring Boot:如何设置和读取 cookie
- excel - 将大量单元格从一个工作簿移动到另一个工作簿