我在网站上有几个应用程序,网站看起来像这样:
site/
../manage.py
../static/
../templates/
../site/
..../apps.py
..../settings.py
../app1/
..../apps.py
../app2/
..../apps.py
在开发过程中,我决定将应用程序移动到一个单独的目录中,以便该站点看起来像这样:
site/
../manage.py
../static/
../templates/
../site/
..../apps.py
..../settings.py
../django_apps/
..../app1/
....../apps.py
..../app2/
....../apps.py
我不得不将所有应用程序从app1
to和 local重命名django_apps.app1
,但是我已经有很多迁移和完整的数据库,并且迁移不允许我这样做。是否可以进行这样的传输,从而不必重新填充数据,应该如何进行?settings.py
app.py
好吧,这并不难,但我做到了。
首先,我必须将应用程序目录实际移动到一个共享目录
django_apps
中。然后,
settings.py
将所有内容INSTALLED_APPS
从重命名'app_name'
为'django_apps.app_name'
,以便它们可以在启动时导入,以及在应用程序配置类中,apps.py
将属性复制name = 'app_name'
到label = 'app_name'
,并将其自身name
更改为name = 'django_apps.app_name'
. 这样做是因为它name
存储了应用程序的路径,应用程序的名称和表本身存储在'label'
. 实际上,仅此而已,但并非全部。最后,您需要将来自其他应用程序的所有导入和迁移从from app_name.tools import something
更改为from django_apps.app_name.tools import something
,并且不要忘记将所有内容重命名app_name.models.functions
为django_apps.app_name.models.functions
迁移内部。就是这样,事实证明,并不是那么困难。