这就是我项目的结构。这个问题将忽略'lib'目录:
.originalOrder
我希望能够运行:
const newSrcArray = _.map(srcArray, (item, idx) => {
const newItem = _.cloneDeep(item);
newItem.originalOrder = idx;
return newItem;
});
//sort newSrcArray
return newSrcArray;
修改manage.py并不难,因此它将根目录添加到系统路径,将django环境变量设置为'app.prodsite',然后从sys.argv中删除该参数,然后继续进行下一步。 manage.py通常会这样做。我无法摆脱最后一个参数而不会导致错误:
project
app
data -> migrations, models, __init__.py
prodsite -> settings.py, urls.py, wsgi.py, __init__.py
testsite -> same as above
lib
data -> migrations, models, __init__.py
prodsite -> settings.py, urls.py, wsgi.py, __init__.py, common models
testsite -> same as above
tools
manage.py
这些是其他相关文件:
python tools/manage.py app.prodsite (makemigrations/migrate) app
如果我尝试运行“ python bldtool / manage.py app.prodsite makemigrations app.data”,则会出现错误消息,询问app.data是否在INSTALLED_APPS中。
如果我仅在INSTALLED_APPS中包含“ app”,则不会生成任何错误,但是django不会检测到任何更改,也不会生成迁移目录。 (我尝试使用 init .py创建迁移目录,但也没有成功)
我该怎么做才能使这项工作按预期进行?
答案 0 :(得分:2)
根据Django文档:
一个字符串列表,指定此Django安装中启用的所有应用程序。每个字符串应为指向以下内容的Python虚线路径:
- 应用程序配置类(首选),或
- 包含应用程序的软件包。
此外,应在运行makemigrations之前创建迁移目录(其中包含__init__.py文件),而不指定应用程序名称,否则,makemigrations命令将不会检测到任何更改。但是,如果您指定应用程序名称,即使没有迁移目录,makemigrations也可以使用。
答案 1 :(得分:0)
在这种情况下适用于我的配置是:
# project.app.data:
class M(Model):
class Meta:
app_label = 'data' # Not full path
a: bool
b: str
c: float
# project.app.data.apps
class DataConfig(AppConfig):
name = 'app.data'
# project.app.data.__init__
# Empty
# project.app.prodsite.settings
ROOT_URLCONF = 'app.prodsite.urls'
WSGI_APPLICATION = 'app.prodsite.wsgi.application'
INSTALLED_APPS += ['app.data', 'app'] # No need for app.micsite
以上内容(以及修改后的manage.py)使我能够执行:
python tools/manage.py app.prodsite [makemigrations|migrate] data