我正在编写一个可重用的Django应用,并且在创建迁移时遇到问题。
我看过this question,但仍然感到困惑。我具有以下目录结构:
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”包含测试项目。
我在“示例”设置的INSTALLED_APPS
部分中包含了“ django_mycleverapp”模型。
但是,运行python ~/example/manage.py makemigrations django_mycleverapp
不会建立任何迁移。
有什么建议吗?
我打算如何创建一个测试项目,以在“ / django-mycleverapp / django_mycleverapp / migrations”中构建迁移?
答案 0 :(得分:1)
您的应用程序应位于项目目录中。您的目录层次结构应如下所示。
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
如果您不希望您的应用成为“示例”项目的一部分,而是希望将其与“示例”项目分开并使用,则必须使用{{1 }}(这需要在应用程序的根目录中有一个pip
)。
例如,如果您已将应用程序发布在git存储库“ https://gitlab.com/myuser/myproject.git”上,则可以添加到我们的setup.py
:
requirements.txt
如果您尚未在git存储库中发布您的应用,则可以为您添加应用的绝对路径git+https://gitlab.com/myuser/myproject.git@v1.0#egg=myapp_name
:
requirements.txt
使用/path/to/django-mycleverapp/django_mycleverapp/
时不要忘记在virtualenv中工作。