Подтвердить что ты не робот

Startapp с manage.py для создания приложения в другом каталоге

Моя структура проекта Django:

/proj
  /frontend
  /server
    /proj
    /app1
    /app2
  manage.py

Как запустить python manage.py startapp app_name, чтобы мои вновь созданные приложения находились в каталоге /server? Я попытался запустить django-admin.py startapp appname в каталоге server, чтобы создать приложение, но в итоге получим эту ошибку:

$ ./manage.py runserver
Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/core/management/__init__.py", line 351, in execute_from_command_line
    utility.execute()
  File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/core/management/__init__.py", line 343, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/core/management/__init__.py", line 177, in fetch_command
    commands = get_commands()
  File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/utils/lru_cache.py", line 101, in wrapper
    result = user_function(*args, **kwds)
  File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/core/management/__init__.py", line 72, in get_commands
    for app_config in reversed(list(apps.get_app_configs())):
  File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/apps/registry.py", line 137, in get_app_configs
    self.check_apps_ready()
  File "/Users/bli1/Development/Django/CL/cherngloong/cherngloong/lib/python2.7/site-packages/django/apps/registry.py", line 124, in check_apps_ready
    raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
4b9b3361

Ответ 1

Вы можете указать путь к каталогу /server/appname после appname как destination, в котором будет создана структура каталога приложения Django.

Из startapp docs:

startapp <app_label> [destination] # startapp command usage 

Создает структуру каталога приложения Django для данного имени приложения в текущий каталог или заданный пункт назначения.

Если указано только имя приложения, каталог приложения будет создан в текущий рабочий каталог.

Если предоставляется дополнительный пункт назначения, Django будет использовать существующее вместо создания нового

Итак, вы можете указать путь к вашему каталогу /server/appname как значение destination.

django-admin.py startapp appname [destination] # specify destination

Что вам нужно сделать?

1. Сначала вам нужно создать каталог appname внутри /server.

mkdir /server/appname # create directory from root level

2. Затем запустите команду startapp, чтобы создать приложение.

django-admin.py startapp appname ./server/appname