为可重用的 Django 应用程序创建迁移



我正在编写一个可重用的 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时,不要忘记在虚拟环境中工作。

相关内容

  • 没有找到相关文章

最新更新