代码之家  ›  专栏  ›  技术社区  ›  Wreeecks

Django 2.1无法在makemigration期间检测到我的新模型

  •  0
  • Wreeecks  · 技术社区  · 7 年前

    我一直在寻找如何解决这个问题。这些是我在发帖之前试过的。不幸的是,他们都没有成功。

    • 在设置的已安装应用程序列表中添加了应用程序名称(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 .

    希望有人觉得这个有用。谢谢你的回复。

    1 回复  |  直到 7 年前
        1
  •  0
  •   ruddra    7 年前

    确保有一个 migrations 应用程序中的文件夹中有一个 __init__.py 在里面。“模型”文件夹也是如此,您应该确保 __初始年 在那里归档。否则python将无法将其识别为模块。 同样在init文件(对于model)中,需要导入如下模型类:

    from .project import ProjectModel
    

    或者你可以跑 python manage.py makemigrations <app_name> 创建迁移文件夹。