【问题标题】:Django shell does not let me query modelsDjango shell 不允许我查询模型
【发布时间】:2020-05-14 16:04:52
【问题描述】:

我正在尝试通过 django shell 查询我的自定义用户模型“RmkUser”,但是当我尝试命令“from models import RmkUser”时,它不断引发错误:

RuntimeError:模型类 models.RmkUser 未声明显式 app_label 且不在 INSTALLED_APPS 中的应用程序中。

我不知道为什么会这样,我也无法通过其他帖子找到。我看到有很多帖子也显示了这个错误的问题,但是我找不到针对我的具体情况的解决方案。

我不明白为什么 django 要求我在 INSTALLED_APPS 下声明我的自定义用户模型“RmkUser”。毕竟,它是一个模型,而不是一个应用程序。但是,我的应用程序(与“RmkUser”模型相反)是在 INSTALLED_APPS 下输入的,并且它也有一个 app_label。此外,我确实将 AUTH_USER_MODEL 设置为我的自定义用户模型。不仅如此,当我“python manage.py runserver”时,我的网站实际上运行得很好。我可以创建新用户,登录等,没问题。

有人知道我如何让 shell 让我查询“RmkUser”模型吗?

提前致谢!

【问题讨论】:

  • 模型必须在应用程序中。您不能拥有不在应用程序中的模型

标签: python django


【解决方案1】:

要导入自定义模型,您需要指定它将来哪个应用程序,尝试:

from yourapp.models import RmkUser

【讨论】:

  • @Raku,是的,您必须先命令并导入它,然后才能使用自定义用户模型,即使您使用默认用户模型也是如此。您仍然需要导入 User 模型
【解决方案2】:

我建议您使用django_extension 中的shell_plus。它将在第一次运行时加载您的模型。使用简单,只需运行以下命令

python manage.py shell_plus

或者你可以查看详情here

【讨论】:

    猜你喜欢
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    相关资源
    最近更新 更多