Есть ли команда для создания приложения с использованием cookiecutter-django?

#django #cookiecutter-django

#django #cookiecutter-django

Вопрос:

После того, как проект Django был создан с использованием cookiecutter-django, есть ли команда python manage.py startapp <app_name> для запуска вместо написания нового приложения с нуля?

Ответ №1:

Для полноты картины я хотел бы добавить, что приложения, зависящие от проекта, должны переходить на второй уровень, также при использовании Cookiecutter Django.

По этому поводу есть проблема на GitHub, где сопровождающий проекта объясняет ситуацию.

Что вы должны сделать, так это следующее:

1 — создайте <name-of-the-app> приложение с помощью python manage.py startapp
2 — переместить <name-of-the-app> каталог в <project_slug> каталог
3 — отредактировать <project_slug>/<name-of-the-app>/apps.py и изменить name = "<name-of-the-app>" на name = "<project_slug>.<name-of-the-app>"
4 — добавить "<project_slug>.<name-of-the-app>.apps.<NameOfTheAppConfigClass>" в LOCAL_APPS config/settings/base.py

Комментарии:

1. Спасибо, это очень полезно. Для меня, после запуска cookiecutter-django , было даже не совсем ясно, нужно ли мне создавать приложение правильно или оно каким-то образом было обработано процессом генерации.

Ответ №2:

Cookiecutter Django визуализирует проект Django и включает в себя файлы с manage.py модулем. Если у вас установлен Django, вы можете просто позвонить python manage.py startapp <app_name> , и он должен просто работать.

Комментарии:

1. По какой-то причине я думал, что обычного запуска Django startapp было недостаточно, и получилась архитектура, которая не соответствует архитектуре cookiecutter-django, и из-за этого где-то должна была быть аналоговая команда… Похоже, я был неправ 😉

2. Я предполагаю, что я думал примерно так: » startapp создает приложение на первом уровне , в том же каталоге, где manage.py находится. Почему бы не создать приложение на <project_name>/ уровне, где также users находится приложение? » Где я ошибаюсь?

3. Прежде чем заметить автора ответа, я начал копаться в двух разделах, чтобы убедиться в этом. На самом деле, похоже, что он должен быть на самом высоком уровне. Cookiecutter Django добавляет много функциональности, но все еще на том же уровне, что и startproject. Итак, хотя вы можете добавлять приложения, как вы описываете, первый уровень по-прежнему остается типичным местом.

Ответ №3:

Это хороший вопрос, поскольку рекомендуется создавать новое приложение для каждой функции.Решением этого было бы вызвать manage.py из каталога проекта. Вызов будет выглядеть так:

python ../manage.py startapp <name_of_app>

Вам все равно нужно будет переименовать ваше app.py , и вам нужно добавить приложение settings/base.py в раздел local apps.