Создание миграций для повторно используемого приложения Django - PullRequest
0 голосов
/ 25 января 2019

Я пишу приложение 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"?

1 Ответ

0 голосов
/ 25 января 2019

Ваше приложение должно находиться в каталоге вашего проекта.Ваша иерархия каталогов должна выглядеть следующим образом.

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

Если вы не хотите, чтобы ваше приложение было частью вашего "примера" проекта, а хотите, чтобы оно было отделено и использовано вашим проектом "пример ", вам придется установить его в своем проекте, используя 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/

Не забывайте работать в virtualenv, когда вы используете pip.

...