我创建了一个名为base
的应用程序,并为其添加了一个新模型。然而,每当我运行python3 manage.py makemigrations base
时,它都会显示no changes detected
。
我已经添加了我的已安装应用
INSTALLED_APPS = [
...
'base.apps.BaseConfig',
...
]
它在包含__init__.py
文件的应用程序中确实有迁移文件夹。我想知道是什么导致了这个问题。
这是我的型号:
from django.db import models
# Create your models here.
class BaseModel(models.Model):
created_at = models.DateTimeField(auto_now=True)
modified_at = models.DateTimeField(auto_now_add=True)
class Meta:
abstract = True
我的设置包含4个文件:
settings:
--__init__.py
-- dev.py
-- prod.py
-- staging.py
-- common.py
我的__init__.py
:
import os
from .common import *
from decouple import config
environment = config('DEV_ENV', cast=str)
if environment == "dev":
from .dev import *
elif environment == "staging":
from .staging import *
elif environment == "prod":
from .prod import *
我也已经试过运行
python3 manage.py makemigration base --settings=project.settings.dev
,它仍然说no changes detected
从抽象基类文档,
当您想将一些公共信息放入许多其他模型中时,抽象基类非常有用。您编写基类,并在Meta类中放入abstract=True此模型将不会用于创建任何数据库表。相反,当它被用作其他模型的基类时,它的字段将被添加到子类的字段中。
也就是说,如果删除abstract = True
或设置abstract = False
,Django将为您生成迁移文件!!!