【问题标题】:Changed the name of django app.Now python manage.py shell cant see the models.更改了 django app 的名称。现在 python manage.py shell 看不到模型。
【发布时间】:2017-08-31 06:15:11
【问题描述】:

这就是我更改 django 应用程序名称的方法,该应用程序在模型下具有类

我删除了数据库和迁移文件夹。然后我再次运行迁移并创建了表(mariadb)。一切正常。除了我跑的时候 python manage.py shell 可以启动解释器。但是当我尝试 from main.models import Teacher 时,我得到一个 LookupError: No installed app with label 'models' 。 Teacher 是 app main 的 models.py 下的班级。 Main 是我将早期应用程序“foo”重命名为

【问题讨论】:

  • 您是否在您的INSTALLED_APPS 中添加了main
  • 是的,我有。我可以很好地运行服务器并使用管理界面将记录添加到表中。
  • @anikomei 你是否在apps.py 文件中更改了应用名称?您需要在项目文件夹的全局 urls 文件中更改相关的 url 映射。
  • @gitblame 不,我没有接触apps.py。我必须在那里做什么?
  • 在 apps.py 中将 Config 类重命名为 MainConfig 并将 name 成员设置为“main”。

标签: python django shell


【解决方案1】:

编辑答案。我之前误解了这个问题

嘿,如果服务器正在运行并且站点按预期工作(如您所提到的)并且您仅在 shell 中遇到问题,您只需关闭 shell 并重新打开它。

但是,这里似乎您没有在新文件夹中添加 init.py 文件,因为它无法找到 models.py。如果不是这种情况,请编辑问题以显示已安装应用的列表和整个堆栈跟踪。

【讨论】:

  • OP 更改了应用名称,而不是项目名称。 manage.py 是一个项目范围的文件。如果您重命名其中一个应用程序,则无需更改 manage.py。
【解决方案2】:

如果您在您的应用 ma​​in 中,请改用相对导入 from .models import Teacher

【讨论】:

  • 它在'main'内部工作。当我运行python manage.py shell 然后运行from main.models import Teacher 时,我遇到了问题
猜你喜欢
  • 2017-01-13
  • 2016-05-06
  • 1970-01-01
  • 2012-05-20
  • 2011-06-18
  • 2015-12-30
  • 2018-03-06
  • 1970-01-01
  • 2013-02-03
相关资源
最近更新 更多