我在网站上有几个应用程序,网站看起来像这样:
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
我不得不将所有应用程序从app1to和 local重命名django_apps.app1,但是我已经有很多迁移和完整的数据库,并且迁移不允许我这样做。是否可以进行这样的传输,从而不必重新填充数据,应该如何进行?settings.pyapp.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迁移内部。就是这样,事实证明,并不是那么困难。