【发布时间】:2020-04-17 04:16:26
【问题描述】:
几天前我开始学习 Django,为了练习,我决定做一个小项目。
完成模型后,我尝试使用 django.db 将其映射到 sqlite3 中的关系模型。但是在我运行python manage.py makemigrations <app_name> 之后,我得到了以下错误:
python manage.py makemigrations main
SystemCheckError: System check identified some issues:
ERRORS:
auth.Group_permissions: (fields.E336) The models is used as an intermediate models by '<django.db.models.fields.related.ManyToManyField: permissions>', but it does not have a foreign key to 'Group' or 'Permission'.
auth.User_groups: (fields.E336) The models is used as an intermediate models by '<django.db.models.fields.related.ManyToManyField: groups>', but it does not have a foreign key to 'User' or 'Group'.
auth.User_user_permissions: (fields.E336) The models is used as an intermediate models by '<django.db.models.fields.related.ManyToManyField: user_permissions>', but it does not have a foreign key to 'User' or 'Permission'.
contenttypes.ContentType: (models.E012) 'unique_together' refers to the nonexistent field 'models'.
我真的很困惑它们的含义(至少它们看起来很相似)。在我的模型中,实际上没有多对多关系,而且我从未修改过错误消息中列出的任何类(用户、组)。
我不知道我的模型的代码是否与此有关。但我怀疑我是如何构建我的项目的;我将 models.py 文件留空,并创建了一个新目录“models”,其中包含我的所有模型文件。所以:
<m_app>
├── migrations
│
├── sumbmodels
│ └── __init__.py <--- imports modelA, modelB, etc
| └── modelA.py
| └── modelB.py
| └── ...
|
├── static
│ └── <my_app>
|
├── templates
│ └── <my_app>
|
├── tests
│ └── __init__.py
| └── testA.py
| └── testB.py
| └── ...
│
└── models.py <--- from .submodels import *
│
└── ...
如果这不是太多信息,我很抱歉,但鉴于此错误,我不知道在哪里查看。
【问题讨论】:
-
更新:目录分布