我正在编写一个可重用的 Django 应用程序,但在创建迁移时遇到问题。
这个问题我看过了,还是一头雾水。 我有以下类型的目录结构:
django-mycleverapp/
django-mycleverapp/django_mycleverapp/
django-mycleverapp/django_mycleverapp/__init__.py
django-mycleverapp/django_mycleverapp/apps.py
django-mycleverapp/django_mycleverapp/models.py
django-mycleverapp/django_mycleverapp/urls.py
django-mycleverapp/django_mycleverapp/views.py
django-mycleverapp/example/
django-mycleverapp/example/manage.py
django-mycleverapp/example/example/
django-mycleverapp/example/example/__init__.py
django-mycleverapp/example/example/settings.py
django-mycleverapp/example/example/urls.py
django-mycleverapp/setup.py
如您所见,目录"django_mycleverapp"包含我的可重用应用程序,目录"example"包含测试项目。
我将"django_mycleverapp"的模型包含在"示例"设置的INSTALLED_APPS
部分中。
但是,运行python ~/example/manage.py makemigrations django_mycleverapp
不会生成任何迁移。
有什么建议吗?
我该如何拥有一个将在"/django-mycleverapp/django_mycleverapp/migrations"中构建迁移的测试项目?
你的应用应该在项目的目录中。目录层次结构应如下所示。
django-mycleverapp/
django-mycleverapp/example/
django-mycleverapp/example/django_mycleverapp/
django-mycleverapp/example/django_mycleverapp/__init__.py
django-mycleverapp/example/django_mycleverapp/apps.py
django-mycleverapp/example/django_mycleverapp/models.py
django-mycleverapp/example/django_mycleverapp/urls.py
django-mycleverapp/example/django_mycleverapp/views.py
django-mycleverapp/example/manage.py
django-mycleverapp/example/example/
django-mycleverapp/example/example/__init__.py
django-mycleverapp/example/example/settings.py
django-mycleverapp/example/example/urls.py
django-mycleverapp/example/setup.py
如果你不希望你的应用成为你的"示例"项目的一部分,而是希望它被你的项目"example"分开和使用,你必须使用 pip
将其安装在你的项目中(这需要在应用的根目录下有一个setup.py
)。
例如,如果您已在 git 存储库"https://gitlab.com/myuser/myproject.git"上发布了您的应用程序,则可以添加到我们的requirements.txt
:
git+https://gitlab.com/myuser/myproject.git@v1.0#egg=myapp_name
如果尚未在 git 存储库中发布应用,则可以将应用的绝对路径添加到requirements.txt
:
/path/to/django-mycleverapp/django_mycleverapp/
当您使用pip
时,不要忘记在虚拟环境中工作。