0

问题陈述:

  • 我正在尝试在新文件中创建新模型 -app1/models/model2.py
  • 当我尝试进行迁移时,我没有看到任何错误。
  • 但是 Django 没有检测到任何变化。
  • 如果我将相同的代码放在我以前的文件中app1/models/model1.py- makemigrations 工作。
  • 我试过 - python manage.py makemigrations app1&python manage.py makemigrations

我的基本模型:

from django.db import models


class Xyz(models.Model):
    name = models.CharField(max_length=100)

我尝试通过 pycharm 和普通终端。我正在使用 UBuntu 20.04LTS。

我删除了所有迁移文件,然后重新运行makemigrationsapp1它只选择了旧的更改。没有选择新Xyz型号。

所以我创建这个新的 model2.py 文件的方式可能有问题。但我通常像model1.py一样创建它。我什至尝试复制粘贴并重命名同一个文件。我所有的文件夹中都有init .py 。

4

1 回答 1

1

app1.models.model2.Xyz尝试将课程导入到app1/models/__init__.py我身边解决的问题。

应用程序/模型/model2.py

from django.db import models


class Xyz(models.Model):
    name = models.CharField(max_length=100)

运行 1:不成功

应用程序/模型/__init__.py

from models.model1 import *

进行迁移

$ python3 app/manage.py makemigrations
(0.000) SELECT @@SQL_AUTO_IS_NULL; args=None
(0.000) SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; args=None
(0.000) SELECT VERSION(); args=None
(0.000) SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; args=None
(0.000) SHOW FULL TABLES; args=None
No changes detected

运行 2:成功

应用程序/模型/__init__.py

from models.model1 import *
from models.model2 import Xyz  # Add this line

进行迁移

$ python3 app/manage.py makemigrations
(0.000) SELECT @@SQL_AUTO_IS_NULL; args=None
(0.000) SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; args=None
(0.000) SELECT VERSION(); args=None
(0.000) SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; args=None
(0.000) SHOW FULL TABLES; args=None
Migrations for 'app':
  app/migrations/0002_xyz.py
    - Create model Xyz
于 2021-08-10T04:35:44.810 回答