django - Django 2.1 在 makemigrations 期间无法检测到我的新模型
问题描述
我一直在寻找如何解决这个问题。这些是我在发布此问题之前尝试过的事情。不幸的是,他们都没有工作。
在设置的 INSTALLED_APPS 列表中添加了应用程序名称(myapp),它不起作用。
尝试仅添加应用程序名称,但效果不佳。所以现在我使用完整的虚线路径(myapp.settings.MyappConfig)只是为了安全。
已删除
__pycache__/*.pyc
当我运行时$ python manage.py showmigrations
,我可以看到“myapp”被识别但没有迁移。
我已将所有模型放在一个文件夹中进行组织。请参阅下面的我的文件夹结构。我在这里想念什么?这太令人沮丧了,请帮助我。提前致谢!
mysite
|__myapp
| |__ models
| | |__ __init__.py
| | |__ project.py
| |
| |___ apps.py
| |___ admin.py #<-- register your models here
|
|__mysite
|__ settings.py
更新:已修复!
我能够通过在 admin.py 中注册模型来生成迁移脚本
https://docs.djangoproject.com/en/2.1/ref/contrib/admin/
有了这个,您现在可以将模型组织到文件夹中。无需在__init__.py
.
希望有人觉得这很有用。感谢所有的回复。
解决方案
确保migrations
应用程序内有一个文件夹,并且里面有一个文件夹__init__.py
。模型文件夹也是如此,您应该确保那里有__init__.py
文件。否则 python 不会将其识别为模块。同样在 init 文件(对于模型)中,您需要像这样导入模型类:
from .project import ProjectModel
或者您可以运行python manage.py makemigrations <app_name>
创建迁移文件夹。
推荐阅读
- kubernetes - Kubernetes 数据分区大小
- c++ - CANoe - 无法在 CAPL 脚本中打开 .dll
- database - 为什么 Oracle Database XE 18c 未在 Windows 10 中安装?
- python - 如何检查图像是否包含文字?
- angular - Angular 自定义响应式表单验证器不起作用
- android - Squarespace Announcement Bar cut off on Android Chrome Browser
- ubuntu - vscode 终端为空/不存在
- gradle - Remote gradle build daemon
- selenium - Selenium and AutoHotkey - How to get the size of table rows/column?
- android - Recyclerview with two ViewTypes from two SQL Tables/ Cursors: What is the best way?